1

我最近一直在开发一款基于网格的小型自上而下的 2D 游戏。作为实验的一部分,我认为将自动生成的关卡的 2D 表示转换为 3D 很有趣,类似于 Wolfenstein 3D 的风格(例如,我实际上并没有使用 Raycasting)。

将网格转换为带有纹理的四边形并不是什么大问题,但是,我有点纠结于如何实现碰撞。我已经在 Internet 上浏览了 2 天的文章,但没有一篇文章真正为我提供了一个很好的起点,让我了解如何准备我的 3D 世界以进行碰撞以及如何实际实现它。

有谁知道有什么好文章供我阅读,或者甚至愿意写一小段我必须经历的步骤?

我正在用 XNA/C# 编写游戏,但是,您可能知道的任何类型的资源都是受欢迎的(无论是 C++ 还是其他)。

4

1 回答 1

2

Wolfenstein 3D(和类似的)处理碰撞检测的方式很简单:地图是统一的方形单元格地图。Wolf3d 将单元格细分为 64x64 子单元(如果我没记错的话),以允许玩家优雅地滑过迷宫。对于碰撞检测,检查玩家与网格单元格的位置就足够了,如果单元格包含阻挡障碍物(桌子、墙壁、狗、门):阻挡否则:继续前进。

如果您正在寻找对角线和其他随机多边形,请查看有关 Portal 引擎的文章。从 Wolf3D 单元到 Doom/Quake BSP 树的步骤是一个很大的步骤,但是在 Flipcode 档案的底部有很多 Jacco Bikker 的好文章 阅读那些!

于 2013-01-15T19:30:32.437 回答