私は 3D タイル ベースのゲームに取り組んでおり、AABB 衝突検出を使用しています。プレイヤーが交差しているすべての立方体について、プレイヤーが立方体と最も交差していない軸を見つけ、その軸に沿って立方体からプレイヤーを押し出します。
キューブがチェックインされる順序によっては、複数のキューブの端に沿ってスライドするときに問題が発生する可能性があります。問題を説明する図を作成しました。
- 矢印 #1 は、プレイヤーが試みた動きです。他の矢印は衝突応答です。
- 左の図では、衝突は最初に右の立方体に対してテストされ、プレイヤーは左に押し出され、次に上に押し出されます。(悪い)
- 右の図では、最初に左の立方体に対して衝突がテストされ、プレーヤーが押し上げられ、その時点でプレーヤーはもう一方の立方体と交差していません。(良い)
これを解決する最も効率的な方法についてのアイデアはありますか? または、衝突応答を処理するためのより良い方法はありますか?
ありがとうございました。