![]() |
11. パターン描画3 効率の改善 |
![]() |
|---|
前回の方法では毎回イメージを作成するので 非常に効率が悪いので,もう少しいい方法を考えてみましょう。 原点に戻ってやりたいことを思い返してみましょう ・画像の一部分を表示したい と一言で済む事です。イメージ画像(赤線の部分だけに表示したい) わざわざ専用イメージを作ったりなんてめんどくさい事は無しにしましょう。 用意するものはキャラクターを敷き詰めた画像です。
これは透過色を使用しています。 その中の表示したい画像を表示したい位置にずらします。
右側の画像を表示する場合です この時点で表示したい場所に表示したい画像を 表示できていますね。(ややこしい(^^;) しかし表示したくない場所にまで表示されています。 今度はこれを表示しないようにしましょう。
まず背景を描画します。その後に描画範囲をクリップします。 setClip(開始座標X,開始座標Y,大きさX,大きさY) そして先ほどと同じようにキャラ画像を描画します。
どうでしょう,あらかじめ描画範囲を限定していたので 他の部分には描かれていませんね。 これで透明色を必要な場所だけに描画できるんです。 前回,前々回の方法のようにわざわざ専用のイメージを 作ったりはしていませんのでメモリの節約にもなります。 ポイント ・画像を貼り付ける場合は座標をマイナス指定できる ・MIDPにはクリップ命令が実装されている ・あらかじめ描画範囲をクリップしておく。 ただし描画ごとにクリップしなおす事になるので画面全体にこの方法を 適用するのは非常に速度的に辛いので使用箇所は限定した方が良いでしょう さらにキャラクターの画像が大きくなりすぎると非常に遅くなります。 原因としては一部分を表示するために画像全体を呼び出す事になるからです.. ですからパターン描画については使用する状態を考えて 前回,前々回と今回の3パターンを併用するのが現実的です。 これらの問題もMIDP2.0になるとdrawImageで範囲指定が可能なので もうしばらくの辛抱です(^^;