如何在box2d中使身体可旋转但不能移动?

时间:2016-10-17 10:32:15

标签: libgdx box2d

我需要让身体不要移动,就像一个静止的身体,但我确实需要它可以旋转,有没有办法这样做?

1 个答案:

答案 0 :(得分:2)

创建正常的动态身体和静态身体 - 当你想要可旋转的身体躺下并使用RevoluteJoint将它们连接起来时,将它们放在这个位置 - 这是一种你可以想象为“针”的关节

BodyDef dynamicBodyDef, staticBodyDef;
//define type, position of bodies...

Body dynamicBody = world.createBody(dynamicBodyDef);
Body staticBody= world.createBody(staticBodyDef);

RevoluteJointDef jointDef = new RevoluteJointDef();
jointDef .bodyA = dynamicBody;
jointDef .bodyB = staticBody;

world.createJoint(jointDef );

您可以定义物体是否可以碰撞,最大角度是什么等等 - 看看RevoluteJointDef类定义