2011-09-24 70 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