趣味で2Dゲームを開発しています。分離軸メソッドを使用して実装された基本的な衝突検出がいくつかあります。2 つのオブジェクトが衝突する場合、そのうちの 1 つを、重なりが最も少ない軸に沿って衝突から外に投影します。
私が直面している問題は、オブジェクトがかなり速く動いているときに、オーバーラップが最小の軸が常に正しい方向であるとは限らないということです。私が持っている最良の例は、シミュレートされた重力によりオブジェクトが下に移動し(+ y軸に沿って)、「エッジ」に近い環境オブジェクトと衝突する場合です(崖の端など)。オブジェクトが十分に速く落下した場合、オーバーラップ量が最小の軸が x 軸になり、オブジェクトは x 軸に沿って横に押されます。
高速で移動するオブジェクトを処理するための最良の方法は何ですか? 落下するオブジェクトを少しずつ移動することを検討しましたが、これにより多くの余分なオーバーヘッドが追加されるようです。環境オブジェクトに、落下するオブジェクトを投影する軸の「優先」を与えることも検討しましたが、それは面倒でエラーが発生しやすいようです。
多くの余分なオーバーヘッドを追加せずにそれを行う方法はありますか?