描く透明のアークス、画像、J2ME?
-
10-07-2019 - |
質問
って楽しく符号化するopensource-ゲームを楽しんだこと Graphics.setColor()
付いているのかなんてわからん0xAARRGGBB.用していただきたいと思い、より透明性の高い色は、私が描く一部のアーク(ディスク).私たちの輝きがお互いにこのイメージ: http://kenai.com/projects/xplode (マークあり)
知っている透明性の操作が可能で画像(getRGBなどしていない証左である非常に遅いゲームのサイズと透明性の変わります。
そのように透明な拡張ディスクJ2ME ーを使用せず、JSR184もJSR-226?い込んでしまうことが怖いですが"良い"に対応しゃくずこの影響かもしれませんが、お願いが必要ですか?
解決
透明性のものである必要はありませんが遅いときに最小限に抑え、も近づかないようにしましょう非常に古いです。することにも注意が必アルファが無視されます一部の実装では、時には量子化を醜いレベル(モトローラ携帯電話のスナップアルファ値が最寄りの2ビットの値です。Bleh).
いするように誘惑されるアプローチとして単一の透明層の重ね合わせの画面になります。いるint配列のサイズの画面に入るまでプロットの透明ピクセル(int[幅*高さ]).各フレームが呼び出されるようにしてください。createRGBImageを描くイメージの画面になります。
としての実験で、たってはっきりさせておきたいのは、アルファ処理がなくなるわけではありませんでゆっくりおによる充填この配列の定数値は、プロットの画面になります。E.g.0x80FF0000はブレンド赤い色合いの画面で見ることができれば簡単にこの事業は可能な選択の機ます。eを測定することでどのような影響をおフレームレートが得られます。
次に必要なプロット界をこの配列になります。探し Bresenhamサークルの描画アルゴリズム やり直すプロットへのint配列のピクセルです。するためのルックアップテーブルには、事前に計算した半径/sqrt(2)各半径望できる。
次はどのよう配色においてオーバーラップできます。最も簡単なようにプロット、色の値はアルファのピクセルになります。だん色ブレンドで描界ているのは、安くて、丸いブレンドします。
もう一つの方法が無視するその色のブレンドがい簡易合併し、アルファ.E.g.
newColour = ((destColour & 0xFF000000) + 0x20000000) | srcColour;
/* Where source colour is of the form 0x00RRGGBB. Note: Adding 0x20 to alpha each
* time will only work for 7 overlapping circles. */
の色が重なりの円が支配基になるもののアルファされたものであり、不透明な重なりが少なくとも、プレイヤーは、丸います。
したい場合は、精度の良い色ブレンドし、計算も複雑になる場合は特に、まだブレンド値としてアルファを別のアルファの色の貢献からの各ピクセルにより異なりの割合のアルファれるようになります。いきものが有効であった。いするように誘惑されるかに安価なオプションです。
他のヒント
Graphicsクラスのみを使用して、そのようなことを合理的に効率的に行えるかどうかはわかりません。 MIDP JSR 239のOpenGL ES仕様を試してみませんか?
createRGBImage()で各フレームに画像を作成する代わりに、getRGB()およびdrawRGB()を使用してみてください