像碰撞一样的我的世界

Minecraft like collision

本文关键字:一样 我的世界 碰撞      更新时间:2023-10-16

我正在开发一款类似《我的世界》的游戏,用于教育目的。到目前为止,即使有1024x1204块,渲染也很棒,但现在我开始集成播放器碰撞,我遇到了问题。

我对玩家有一个aabbaabb他周围的所有方块。这些是动态创建的,并且运行速度非常快。

我的问题如下:

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

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

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

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

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