2011-03-21 139 views
9

我正在試驗box2d。 我似乎讓人們形容爲粘壁我怎樣才能防止球粘在Box2D的牆上?

我有一個球和槳

我使用所有的基本建議的標準,我能找到,10M的世界,1M球

的一個問題球具有以下屬性:

shape: circle (.5f radius) 
size: 1.0f 
density: 1.0f 
restitution: 1.0f 
friction: 0.0f 

用於移動球的槳爲1.5m,它具有以下性質: 形狀:

circle (.75f radius) 
size: 1.5f 
density: 10.0f 
restitution: 0.1f 
friction: 0.0f 

正如你看到所有物體的摩擦力都是0。

球不斷地卡住沿牆壁滾動或在90個角

我想我可以檢測與牆壁碰撞並觸發applyLinearImpulse移動球從牆上完全卡住。

+11

我不得不說這樣做,你的問題的標題立即使我懷疑,如果你是一個阿拉斯加裸體。 – Groovetrain 2011-03-21 17:46:11

回答

12

您需要降低彈性碰撞的最小速度閾值。

通過減少b2Settings::b2_velocityThreshold接近0

+0

看起來像我所需要的。什麼是明智的價值呢?最初我會假設將它設置爲0.f將確保它永遠不會卡住,但這會產生不利影響嗎? – Rob 2011-03-21 18:41:19

+0

從零開始工作 - 0.1應該沒問題。如果你想讓物體停靠在表面上,0只會產生不好的效果 - 它們會不停地晃動。 – Martin 2011-03-21 19:05:25

+0

聽起來不錯。非常感謝您的幫助。 – Rob 2011-03-22 10:26:08