2013-03-15 23 views
2

我是新到Android libGDX遊戲引擎和搜索形式多天做出掛繩,libGDX:掛繩

我也讀了所有的Box2D的文檔,有一種方法ropJoint但由於沒有足夠的解釋用它。

任何身體都可以幫助我像這樣做一根繩子。 Hanging Rope in Box2d

我也嘗試搜索一些不錯的libGDX書籍,但無法找到。

您需要幫助,請幫忙。

回答

2

只需在循環中創建一些矩形主體(box2d中的setAsBox),並使用旋轉關節互相連接(在循環和內部循環之前調用RevoluteJointDef調用initialize(..))。

這是我的代碼:

RevoluteJointDef jd = new RevoluteJointDef(); 
Body prevBody = startBody; 
for(int i=0; i<ringCount; i++) 
    { 
     BodyDef bd = new BodyDef(); 
     bd.type = BodyType.DynamicBody; 
     bd.angle = angle-MathUtils.PI/2; 
     bd.position.set(position.x + i*MathUtils.cos(angle)*EACH_RING_DISTANCE, 
         position.y + i*MathUtils.sin(angle)*EACH_RING_DISTANCE); 
     Body body = world.createBody(bd); 
     body.createFixture(eachRingFD); 

     Vector2 anchor = new Vector2(bd.position.x - MathUtils.cos(angle)*EACH_RING_DISTANCE/2f, 
            bd.position.y - MathUtils.sin(angle)*EACH_RING_DISTANCE/2f); 
     jd.initialize(prevBody, body, anchor); 
     prevBody = body; 
    } 
//connect a hanging shape to rope here if exists