1

ゲームの衝突検出を行っています。レベルは、それぞれ独自のバウンディングボックスを持つブロックからランダムに生成されます。私の衝突検出は問題ありませんが、プレイヤーの船が同時に2つ以上のブロックと衝突する可能性があり、どちらが1番目に当たったかを判断する必要があります。

船のバウンディングボックスの移動方向の角を見つけて、その角から船の移動ベクトルの反対方向に線を引くと(図の赤い線)、最も遠い交点であることがわかりました。その行の離れて最初のボックスヒットになります。そのロジックをプログラムする方法がわかりません!

私が一緒に仕事をしなければならないこと

  • 衝突したバウンディングボックス(長方形)のリスト
  • 船の動き(Vector2)
  • 船のバウンディングボックス(Reactangle)

ここに画像の説明を入力してください

4

1 に答える 1

1

私のアプローチは次のとおりです。より小さく、より正確な境界ボックスの別のセットを船に追加します。衝突が発生した場合は、小さいバウンディング ボックスのスケールのチェックを開始する必要があります。私が理解していることから、多くのゲームは不必要な衝突チェックを避けるためにそうしていますが、衝突が発生したときに衝突をより正確に判断する方法があります。

于 2012-11-17T16:46:16.690 に答える