2

現在、敵がその黒い領域内にない場合、黒い領域を埋めるゲームを開発しています。これはゲームなので、高速である必要があります。現在、私は次のことを行っています:

  1. 黒い領域で塗りつぶしを開始します
  2. 塗りつぶしアルゴリズムでピクセルをチェックしながら、敵もチェック
  3. 敵が見つからない場合は、このビットマップをメイン キャンバスのビットマップにします

チェックする黒い部分

これはこれまでのところ、私が見つけることができる最善かつ最速のアプローチでした。それでも、ゲームはほんの一瞬フリーズします。しかし、RegionsPathsを使用してから canvas.drawPathを使用すると、はるかに高速になると思います。また、 region.contains(x,y)を使用して敵を確認することもできます。その特定の色を持つ領域/領域の配列を取得する方法を教えてください。

前もって感謝します。

PS: これが必要かどうかはわかりませんが、私はpaint.setXfermode (new AvoidXfermode(COLOR1, 0, Mode.TARGET));を使用しました。すべての COLOR1 を必要な色に置き換えるのは非常に高速です。これにより、上記の問題に対する解決策があることをより確信できます。

4

1 に答える 1

0

敵は何人いますか?それらはどのように表現されていますか?逆の問題を解いてみませんか。真っ黒なキャンバスで、敵がいるところだけを緑に塗りつぶす?キャンバスの大部分が黒くなると、大幅に高速になります。

于 2012-07-09T16:59:04.440 に答える