我想问一下我们如何在汽车游戏中检测坡度。以便汽车将其检测为斜坡而不是可碰撞的物体。我搜索了很多,但找不到任何有用或有用的东西。
问问题
546 次
1 回答
2
你对这种情况的描述有点模糊,就物理包等而言(或者你正在写一个?),但总的来说,我会说定义倾斜地形的最简单方法是作为高度场 - 一个矩形网格的三角形。因此,制作一个不同高度的 N x M 数组,然后让 Three.js 绘制高度(Y)与数组值匹配的三角形,并间隔......地形细节。
现在对于任何给定的汽车位置,您可以在 JS 中仅根据汽车位置的 X 和 Z 分量快速确定网格中最近的三个点。这只是针对您的网格间距的几个分区。一旦你有了这些,你的 JS 代码就可以将汽车的高度调整到三角形上那个位置的适当 Y,如果你有需要知道那个位置的 3D 斜率的物理解决方案,它也很容易计算。Three.js 本身甚至不需要调用——所有关键信息都在原始地形数组和汽车的 2D 映射到 3D 位置中。
这是一个专门针对地形的解决方案——如果您希望能够与任意几何体发生碰撞或不发生碰撞,那么这要复杂得多。
于 2013-01-11T03:12:20.330 回答