1

私は最近、小さなトップダウン グリッド ベースの 2D ゲームに取り組んでいます。実験の一環として、Wolfenstein 3D のスタイルに似た、自動生成されたレベルの 2D 表現を 3D に変換するのは楽しいと思いました (例として、私は実際には Raycasting を使用していません)。

テクスチャを使用してグリッドをクワッドに変換することはそれほど問題ではありませんが、衝突を実装する方法に行き詰まっています。私は 2 日間インターネットで記事を閲覧してきましたが、3D ワールドの衝突を準備する方法と実際にそれを実装する方法について、適切な出発点を与えてくれるものはありませんでした。

誰かが私が読むべき良い記事を知っていますか、それとも私が経験しなければならないステップの小さな抜粋を書きたいと思っていますか?

私は XNA/C# でゲームを書いていますが、あなたが知っているどんなタイプのリソースも歓迎します (C++ であれ、その他のものであれ)。

4

1 に答える 1

2

Wolfenstein 3D (および類似の) が衝突検出を処理する方法は単純です。マップは均一な正方形のセル マップです。Wolf3d は、セルを (記憶が正しければ) 64x64 サブユニットに分割し、プレイヤーが迷路を優雅に移動できるようにしました。衝突を検出するには、グリッドのセルに対するプレーヤーの位置を確認するだけで十分です。セルに障害物 (テーブル、壁、犬、ドア) が含まれている場合: そうでない場合はブロック: 次に進みます。

対角線やその他のランダム ポリゴンを探している場合は、ポータル エンジンに関する記事を参照してください。Wolf3D セルから Doom/Quake BSP ツリーへのステップは大きなものですが、Flipcode アーカイブの下部に Jacco Bikker による優れた記事がかなりあります 。それらを読んでください!

于 2013-01-15T19:30:32.437 に答える