我有一个使用JBox2D进行物理模拟的Android应用程序。唯一的动态对象是0.07米半径的圆,以及总游戏区域中约20米乘20米的几个静态圆和矩形。我也通过ApplyForce方法使用了一些自定义力。
当任何物体发生碰撞时,它们确实会发生碰撞,但它们不会反弹;一切都在一起砰的一声。所有的身体都有自己的密度,摩擦和恢复原状(有些物体的恢复原则大于1)。
有没有人知道为什么这些碰撞不起作用?我想这可能是因为身体的移动速度不够快,JBox2D无法算作正确的碰撞(Box2D中有一个截止点)。
谢谢!
答案 0 :(得分:1)
设置Settings.velocityThreshold = 0.0001f;
(或非常小)为我解决了它。
答案 1 :(得分:0)
我找到了一个局部解决方案 - Box2D(至少JBox2D)如果速度低于某个阈值则忽略恢复 - 通过将我的所有对象向上缩放10倍,阈值变得相对较低,并且对象反弹。