C# 三维世界中的碰撞

C# 三维世界中的碰撞,c#,3d,xna,collision-detection,game-engine,C#,3d,Xna,Collision Detection,Game Engine,我最近一直在做一个自上而下的二维网格小游戏。作为实验的一部分,我认为将自动生成的标高的2D表示转换为3D很有趣,类似于Wolfenstein 3D的样式(例如,我实际上没有使用光线投射) 将网格转换为具有纹理的四边形并不是什么大问题,但是,我一直在研究如何实现碰撞。我已经在互联网上浏览了两天的文章,但是没有一篇文章真正给了我一个很好的起点,告诉我如何准备我的3D世界以防碰撞,以及如何实际实现它 有没有人知道什么好文章可以让我读,或者甚至可以写一小段我必须经历的步骤 我在XNa/C中写游戏,但是,

我最近一直在做一个自上而下的二维网格小游戏。作为实验的一部分,我认为将自动生成的标高的2D表示转换为3D很有趣,类似于Wolfenstein 3D的样式(例如,我实际上没有使用光线投射)

将网格转换为具有纹理的四边形并不是什么大问题,但是,我一直在研究如何实现碰撞。我已经在互联网上浏览了两天的文章,但是没有一篇文章真正给了我一个很好的起点,告诉我如何准备我的3D世界以防碰撞,以及如何实际实现它

有没有人知道什么好文章可以让我读,或者甚至可以写一小段我必须经历的步骤

我在XNa/C中写游戏,但是,任何类型的资源你都知道是欢迎的(无论是C++还是别的什么)。

< P> WORFESTEN 3D(和类似)处理冲突检测的方式很简单:地图是一个统一的方格图。Wolf3d将这些单元细分为64x64子单元(如果我没有记错的话),让玩家在迷宫中优雅地滑行。对于碰撞检测,只要检查玩家在网格单元格中的位置就足够了,如果单元格中包含阻挡障碍物(桌子、墙、狗、门):阻挡,否则:继续


如果您正在查找对角线和其他随机多边形,请查看有关门户引擎的文章。从Wolf3D cells到Doom/Quake BSP树是一个很大的步骤,但是有很多好的阅读这些

您是如何在2D中实现碰撞检测的?在xna中,它可能只是将
BoundingCircle
s更改为
BoundingSphere
sReal quick'n dirty bounding box复选框,我甚至没有添加宽相位剔除的形式。我计划扩展网格以允许斜墙等,因为我想在3D表示中使用它。嗯,我想我应该在gamedev中发布这个。如果你认为最好的话,你可以标记版主的注意并要求将其迁移到gamedev?最好让mods来做,在另一个站点上完全重新创建相同的问题