衝突検出アルゴリズムを次元にとらわれないようにすることは実際には可能です。1 つの次元に沿って動作する衝突検出器を用意し、それを使用して各次元をチェックします。「これらが衝突しているかどうか」に対する答えは、各次元に沿った衝突検出の論理 AND です。
ゲームは、ゲーム オブジェクトの相互作用と、画面へのゲームのレンダリングを完全に分離するように編成する必要があります。プログラムのこれら 2 つのセクションは、「モデル」と「ビュー」と考えることができます。モデルには、3 つの軸を持つ完全な 3D ワールドがあります。ある程度の痛みがなければ、この時点で半減することはできません。モデルは適切な 3D である必要があります。
ビューはすべてのゲーム オブジェクトの位置を読み取り、カメラ定義を使用してそれらを画面に投影します。この部分では、完全な 3D レンダリング エンジンは必要ありません。あなたが話している視点の正しい専門用語は「斜め」であり、多くの古代中国と日本の巻物や版画に見られます。特に「源氏物語」の画像を探してください.
オブジェクト (地面を含む!) の画面上の位置は次のようになります。
DEPTH_RATIO=0.5;
view_x=model_x-model_z*DEPTH_RATIO-camera_x;
view_y=model_y+model_z*DEPTH_RATIO-camera_y;
正投影の正射投影に変更できます。
DEPTH_RATIO=0.5;
view_x=model_x-camera_x;
view_y=model_y+model_z*DEPTH_RATIO-camera_y;
そしてもちろん、カメラによって定義されたボリュームの外側にあるオブジェクトをカリングすることを忘れないでください。
このメカニズムを使用して、視差レイヤーの配置を処理することもできます。これはもちろん、カメラを正射投影ではなく 1 点透視投影に変更することです。スプライトのレンダリング サイズを変更するためにこれを使用する必要はありませんが、オブジェクトの x 位置を現実的に管理するのに役立ちます。挑戦したい場合は、投影を組み合わせることもできます。深い背景には 1 点遠近法を使用し、前景には正投影のものを使用します。