我正在制作一个使用非常简单的碰撞检测的游戏。我没有使用2D盒,因为这是一个矫枉过正的问题。基本上,它是Pong和fooseball的组合。当球速度加快并且速度非常高时,它会穿过它应该碰撞的墙。该代码以慢速和常规速度运行,但运动速度非常快。在碰撞期间穿过墙壁的物体
这是我的代码snipet:
pos.x是保持我的球中的x位置的矢量。
if (pos.x - radius < wallLeft){
pos.x = wallLeft + radius;
vel.x *= -1;
}
我该怎么做才能改善这种情况? 谢谢
球只在一个方向穿过墙吗? –
球是否暂时通过并且反弹得太晚或者不会反弹?此外,我们需要这些字段的类型以及您在此之前如何进行运动计算。 – KillianDS
尝试在if语句的条件检查上设置一个断点,以便查看为什么它没有注册。你是否使用pos.x作为无符号整数? – Dawson