私は空き時間に「ゲーム」に取り組んでおり、ほぼ純粋に学習体験として、プレイヤー エンティティと敵エンティティ間の衝突検出が必要な段階に来ています。
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))。より良い方法はありますか?