2011-12-08 24 views
1

我試圖將兩個box2d物體連接在一起,它們在固定距離上分開。兩個物體都不能自行旋轉,並且連接也不得不旋轉。身體之間的差距需要讓其他身體通過。將兩個box2D物體安全地固定在一起

我現在有一個b2revoluteJoint設置像這樣:

b2RevoluteJointDef rjd; 
rjd.lowerAngle = 0.0f; 
rjd.upperAngle = 0.0f; 
rjd.Initialize(body2, body1, body2->GetPosition()); 
rjd.collideConnected = false; 
world->CreateJoint(&rjd); 

但是上聯是不完全剛性和機構傾向於公平彼此相對有點走動。有一個更好的方法嗎?

我也曾嘗試b2WeldJoint它,因爲我認爲這兩個機構必須重疊沒有工作......

編輯:

我已經試過b2WeldJoint是:

b2WeldJointDef wj; 
wj.Initialize(body1, body2, body1->GetWorldCenter()); 
world->CreateJoint(&wj); 

但是,當我移動一個身體時,另一個身體停留在其位置上。

回答

0

我也曾嘗試b2WeldJoint,因爲我認爲這兩個機構必須是重疊的,沒有工作......

據我所知,身體的形狀不一定要交疊。據我瞭解你的設置,焊接接頭將是適當的,因爲它禁止所有的相對平移和旋轉。

+0

Constantinius,我已更新我的問題與示例b2WeldJoint我嘗試失敗。 – Alex

+0

您對焊接接頭的使用對我來說似乎是正確的。你是否嘗試製造兩種形狀並將它們添加到一個物體上? – Constantinius