1
我試圖製造具有它在libGDX低端一些對象掛繩, 繩應該像hanging rope in Box2DlibGDX:掛繩一些樞結
我已經做了很多的研究,libGDX有其ropeJoint方法,但如何使用它來製作繩子?
請幫忙,這將是一個很大的忙。
我試圖製造具有它在libGDX低端一些對象掛繩, 繩應該像hanging rope in Box2DlibGDX:掛繩一些樞結
我已經做了很多的研究,libGDX有其ropeJoint方法,但如何使用它來製作繩子?
請幫忙,這將是一個很大的忙。
我已經開始與回答類似的問題 libGDX: Hanging Rope
,並添加一些代碼給它添加一些缺碼和修復錨一些問題,我認爲下面的代碼是一個合適的目標問題:
BodyDef ropeStartDef = new BodyDef();
int EACH_RING_DISTANCE = 10
ropeStartDef.type = BodyType.StaticBody;
ropeStartDef.position.set(m_camera.viewportWidth/2,m_camera.viewportHeight);
Body ropStartBody = m_world.createBody(ropeStartDef);
PolygonShape ropeStartShape = new PolygonShape();
ropeStartShape.setAsBox(5, 5);
ropStartBody.createFixture(ropeStartShape, 0);
ropeStartShape.dispose();
//----------------------------
RevoluteJointDef jd = new RevoluteJointDef();
Body prevBody = ropStartBody;
int angle = -90;
Vector2 position = ropeStartDef.position;
BodyDef previousbodyDefinition= ropeStartDef;
for(int i=0; i<5; 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 = m_world.createBody(bd);
FixtureDef eachRingFD;
eachRingFD = new FixtureDef();
CircleShape chainCircleshape =new CircleShape();
chainCircleshape.setRadius(4);
eachRingFD.density = 2;
eachRingFD.shape =chainCircleshape;
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);
//-----------------------added based on http://www.emanueleferonato.com/2009/10/05/basic-box2d-rope/
RevoluteJointDef joint = new RevoluteJointDef();
joint.initialize(prevBody, body, anchor);
m_world.createJoint(joint);
//------------------------end of added
prevBody = body;
previousbodyDefinition = bd;
}
繩索連接不是繩索的物理表示。這是繩索式的約束,強制最大距離。那不是你在尋找什麼 – kassak 2013-03-15 12:15:42
@kassak比我應該怎麼做一根吊繩,你能幫忙嗎? – 2013-03-15 12:39:32
與您的鏈接一樣,您應該創建一組矩形,並使用簡單的旋轉關節進行連接。我沒有看到關於該主題的教程,使用libGDX。 – kassak 2013-03-15 12:47:31