私の wip ゲームでは、Circle-Circle 衝突を実装する必要があります。これを実装するには、 Centers 間の二乗距離を計算するだけ(x1-x2)² + (y1-y2)²
です。これが半径(r1+r2)²
の 2 乗よりも小さい場合、衝突が発生しました。しかし、今日、私はこのリンクを見ました:
Circle-Circle collision
ここでは、最初に AABB 衝突を使用して、円が近くにあるかどうかを確認します。しかし、なぜ私はこれをしなければならないのですか?円と円の衝突は単純で、それほど高価な計算ではありません。最初にAABBを使用すると、少なくとも同じ数の計算を行い、円がさらに近くにある場合.
説明させてください:
円ごとに AABB 衝突検出を行います。だから私はn! / (n-2)!
計算をしなければなりません。n = テストする円の数。AABB が衝突する円のペアごとに、実際に衝突する場合は別の計算を行う必要があります。
AABB 衝突検出がなければ、私はn! / (n-2)!
計算を行うだけで、この計算にそれほどコストがかかるとは思いません。どう思いますか?