1

弾丸を発射できる侵入者のグリッドを開発しました。

衝突検出について私が知っている唯一の解決策は、2つとRectanglesそのIntersects方法を使用することです。

さて、各弾丸を画面上のすべての侵入者と比較するのは効率的ではないと私は感じています。

ここで使用できる、よりインテリジェントで一部の侵入者のみを比較する別のソリューションはありますか?

X軸にフラグを使用することを提案します。このフラグには、発射時に弾丸のX位置が表示されます。侵入者のスプライトはこのフラグにアクセスでき、侵入者のスプライトがそのX位置(+/-数ピクセル)にある場合にのみintersectsメソッドを実行します。これにより、比較の数が大幅に減少します。

何か案は?ありがとう。

4

1 に答える 1

1

おっしゃる通り、より効率的になる可能性のある方法があります。スペースを粗粒度のセクションに分割し、弾丸がどのセクションにあるかを確認することで、他のセクションの侵入者を排除できます。さらに一歩進んで、「粗さ」または解像度の複数のレイヤーを持つことができます。

この一連の思考の最後にあるのは、quad treeと呼ばれるデータ構造です。これは、2 次元で衝突検出を行うための自然で効率的な方法です。

于 2012-07-28T05:12:19.653 に答える