2
2Dプラットフォームゲームで、プレーヤーが傾斜した地面をスムーズに動くようにする方法は?
2Dプラットフォームゲーム用の物理エンジンを開発しています。衝突検出に分離軸定理を使用しています。地面は、プレーヤーを軸に合わせた境界ボックスとして、方向付けられた境界ボックスから構築されます。(具体的には、SATを使用してOBBのスイープ衝突検出を実行する「Realtime Collision Detection」という本のアルゴリズムを使用しています)。動的オブジェクトが環境に侵入しないように、衝突応答でかなり小さな(ゼロに近い)復元係数を使用しています。 エンジンはほとんど正常に動作しますが、発生する可能性のあるいくつかのエッジケースについて心配しているだけです。たとえば、図では、A、B、Cが地面です。プレーヤーはBに沿ってAに向かって左に向かっています。不正確なため、プレーヤーボックスはボックスBのわずかに下にある可能性があります。したがって、Aに到達すると、プレーヤーの左下隅がAの右側と衝突する可能性がありますが、これは望ましくありません(プレーヤーがAの上部をスムーズに移動するためです)。プレイヤーがボックスCの上にいて、Bに向かって左に移動すると、同様の問題が発生するようです-プレイヤーの左下隅が上下にスライドする代わりに、Bの最も極端なポイントがプレイヤーの左側と衝突する可能性がありますBの上 Box2Dは、エッジ形状の接続情報を保存することでこの問題を処理しているように見えますが、この情報を使用して問題を解決する方法がよくわかりません。 どんな提案も大歓迎です。