4

私は教育目的で Minecraft のようなゲームに取り組んでいます。ブロックを使用してもレンダリングはこれまでのところ素晴らしい1024x1204ですが、プレーヤーの衝突を統合し始めたので、問題が発生しています。

aabbプレイヤー用の と、周囲aabbのすべてのブロック用の があります。これらは動的に作成され、非常に高速に機能します。

私の問題は次のようになります。

速度ベクトルと現在位置があります。各軸について、潜在的な位置を計算し、aabb を作成します。衝突をチェックし、そこに自由に移動します。それ以外の場合は、そのコンポーネントの速度を 0 に設定します。プレーヤーを部分的に壁に面する方向にスライドさせたいので、軸を分離します。

軸の順序は y、x、z です。衝突時の反応は素晴らしいのですが、移動できずにワールド内で動けなくなることがあるため、コーナーで問題が発生しています。この理由が何であるかはわかりません。

私は実際の物理を実装したくありません。それらはより要求が厳しく、基本的に私が必要とするものには多すぎるからです。

これをうまく実装する方法について何か提案はありますか? 私はいくつかの検索を行いましたが、この特定の状況に役立つものは何も見つかりませんでした.

4

1 に答える 1

1

これは、問題の原因が多くのことに関連している可能性があるという意味で、少し抽象的です。私の頭の上から、衝突検出コードのバグかもしれません: どういうわけか、オブジェクトが 1 (またはそれ以上) 単位で境界を越えることができます。そのため、次の衝突が計算されると、1 つ以上の寸法がスタックします (衝突が検出されたときに腕がすでに壁の内側にあると想像してください。壁の境界の内側と衝突するため、腕を出すことはできません)。

于 2012-08-16T16:09:21.900 に答える