3

私は空き時間に「ゲーム」に取り組んでおり、ほぼ純粋に学習体験として、プレイヤー エンティティと敵エンティティ間の衝突検出が必要な段階に来ています。

Entityプレイヤーとすべての敵の両方が、x、y、高さ、および幅のプロパティにアクセスできる基本クラス を共有します。これらを使用して、エンティティごとに長方形を作成し、重なりを見つけようとします。オーバーラップがある場合は、衝突が発生しています。

したがって、上記のロジックを使用すると、次のデータが Rectangle の配列にあると見なすことができます。

X    Y    HEIGHT   WIDTH
------------------------
0    0    25       50
0    50   25       25
0    100  25       30
50   200  25       50
150  250  25       25
150  50   25       30

これらのエンティティ (長方形) のいずれかが他のエンティティと交差しているかどうかを判断する最速の方法は何ですか? 単純に配列をループして各要素を他の要素と比較するだけでは十分なパフォーマンスが得られません (O(n^2))。より良い方法はありますか?

4

1 に答える 1

6

互いに近くにある要素をすばやく見つけることができる、ある種の空間インデックスまたは構造を使用したいと考えています。

一般的に使用されるデータ構造の 1 つにquadtreeがあります。

于 2012-11-16T19:58:16.967 に答える