2011-12-14 43 views
1

我正在開發一款遊戲,在這個遊戲中我有Chain。鏈一面是靜態的,另一面是動態的。並且鏈條在ccTouchMove.as鏈條移動中移動,動態部分變得更加直觀並且看起來像曲線。鏈長是固定的。那麼我該如何設置修復長度和曲線。如何在Box2d中創建關節

請參閱我必須使用哪個聯合。我正在嘗試RopeJoint,但我得到錯誤 b2RopeJointDef jd;

可以有人給我發送示例代碼。

+0

b2RopeJointDef jd; \t jd.bodyA = anchorBody; //定義身體 \t jd.bodyB = body; \t jd.localAnchorA = b2Vec2(0,0); //定位錨點 \t jd.localAnchorB = b2Vec2(0,0); // \t jd.maxLength =(body-> GetPosition() - anchorBody-> GetPosition())。 //定義關節的最大長度=身體之間的當前距離 \t world-> CreateJoint(&jd); //創建關節 – triveni 2011-12-14 10:13:23

回答

1
You can use rope joint and use code like this.. 

b2RopeJointDef rp; 
rp.bodyA=dragonFlyAnchor; //define bodies 
rp.bodyB=foodItemBody; 
rp.localAnchorA = b2Vec2(0,0); //define anchors 
rp.localAnchorB = b2Vec2(0,0); 
rp.maxLength=((foodItemBody->GetPosition()) - dragonFlyAnchor->GetPosition()).Length(); //define max length of joint = current distance between bodies 
world->CreateJoint(&rp); //create joint 
+0

+1 b2DistanceJoint爲我完成了工作,但無論如何thx – 2013-07-05 22:26:02