我正在制作一款使用非常简单的碰撞检测的游戏。我没有使用 box 2D,因为它有点矫枉过正。基本上,它是乒乓球和 table 上足球的混合体。随着球的速度增加并具有非常高的速度,它最终会穿过它应该碰撞的墙。该代码适用于慢速和常规速度,但不适用于非常快的运动。
这是我的代码片段:
pos.x 是一个 vector ,它保存我的球的 x 位置。
if (pos.x - radius < wallLeft)
{
pos.x = wallLeft + radius;
vel.x *= -1;
}
我可以做些什么来改进它? 谢谢
最佳答案
尝试增加 wallLeft 一点,这样球的速度永远不会大于 wallLeft,似乎在你的球低于 0 之后它会出现故障(或者你有一些我不知道的代码),不熟悉框架或其余代码的工作方式,但这是解决它的最简单方法。如果你不想那样做,如果球的 x 小于 0,那么某处可能有一个代码会做一些事情,你必须让它更宽松一点,也许这样做,如果球的 x 是小于 -50,或类似的东西(玩这个数字直到它起作用)
关于c++ - 碰撞时物体穿墙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197513/