0

私は Android (およびその点で Java) が初めてで、簡単なゲームを作成しています。私は立ち往生しています。

私の問題はこれです:

起動時に画面全体を占める 2 つの png 画像 (背景と前景) があります。前景の「描画部分」の幅を ON_DRAG の x 座標に設定できるようにしたいと考えています。私の制御方法は正常に機能します。次のように使用されます。

g.drawRect(0, 0, scene.getLine(), g.getHeight(), Color.GREEN);

ここで、scene.getLine() はタッチの x 値を返します。この時点で、画像の上に緑色の長方形を描くことができます。しかし、私が実際に望んでいるのは、これらの長方形の寸法が最上層の png に「穴を開ける」ことです (そのため、背景が下に表示されます)。前景を拡大縮小したくありません。

私はclipRectを試しましたが、これら2つの上に描画する必要がある他の画像があり、clipRectがこれを防ぐため、機能しません。「PorterDuffXfermode」コードの束を見てきましたが、それを自分の状況に適用する方法を理解できず、機能させることができません。つまり、PorterDuff の「SRC」モード セットを使用してペイントを作成できますが、「ソース」イメージと「宛先」イメージを定義する方法がわからないため、ペイントは魔法のように機能します。これに関する最後の考慮事項は、たとえ PorterDuff が機能したとしても、これを 60fps で実行したいことを考えると、それが実用的かどうかわからないということです。

助言がありますか?

ありがとう。

4

1 に答える 1

1

canvas.save()クリップの前と描画の後に呼び出しcanvas.restore()て、キャンバスを見つめる前の状態に戻すことができます。次に、追加の画像を描画できます。

于 2013-02-22T08:09:16.650 に答える