4

我正在为教育目的开发类似 Minecraft 的游戏。到目前为止,即使有1024x1204块,渲染也很棒,但现在我开始整合玩家碰撞我遇到了问题。

我有一个aabb代表球员和aabb代表他周围所有街区的球员。这些是动态创建的,运行速度非常快。

我的问题如下:

我有速度矢量和当前位置。对于每个轴,我计算潜在位置并制作一个 aabb。我检查碰撞,它是自由的我移动到那里,否则我将该组件的速度设置为 0。我将轴分开,因为我希望我的播放器在部分面向墙壁的方向上滑动。

轴的顺序是 y,x,z。碰撞响应很棒,但我在角落遇到了一些问题,因为它有时会卡在世界上而无法移动。不知道这是什么原因。

我不想实现实际的物理,因为那些要求更高,基本上对我的需要来说太多了。

你们对如何以一种好的方式实现这一点有什么建议吗?我做了一些搜索,但没有发现任何对这种特殊情况有用的东西。

4

1 回答 1

1

从某种意义上说,这有点抽象,您的问题的原因可能与很多事情有关。从我的脑海中,可能是您的碰撞检测代码中的一个错误:它以某种方式允许对象以 1 个(或更多)单位跨越边界。因此,当计算下一次碰撞时,1 个或多个维度被卡住(想象一下,当检测到碰撞时,手臂已经在墙内。您无法伸出手臂,因为它与墙边界的内部发生碰撞)

于 2012-08-16T16:09:21.900 回答