2011-09-24 81 views
0

我有一个使用JBox2D进行物理仿真的Android应用程序。唯一的动态物体是一个0.07米的半径圆,以及在20米乘20米的总游戏区域中的几个静态圆和长方形。我还通过ApplyForce方法使用了一些自定义力。JBox2D碰撞不弹跳

每当任何物体发生碰撞时,它们确实会发生碰撞,但不会反弹;一切都在一起。所有的身体都有自己的密度,摩擦力和恢复原状(有些物体的恢复能力大于1)。

有没有人有任何想法,为什么这些碰撞不起作用?我认为这可能是因为身体移动速度不够快,导致JBox2D被视为适当的碰撞(Box2D中存在截断)。

谢谢!

+0

这可能有助于“球对球碰撞 - 检测和处理”http://stackoverflow.com/questions/345838/ball-to-ball-collision-detection-and-handling – Mob

+0

什么版本的引擎是你在用吗?我建议再次尝试使用2.1.2.2版本,这可能已被修复 –

回答

0

我发现了一个部分解决方案 - Box2D(至少JBox2D)在速度低于某个阈值时忽略恢复 - 通过缩放我的所有对象10倍,阈值变得相对较低,并且对象反弹。

1

设置Settings.velocityThreshold = 0.0001f;(或非常小)为我解决了它。

+0

是否可以在不重新编译JBox2D的情况下更改此版本?我使用v2.2.1.1,这是一个静态的最终。 – afaulconbridge