旋转Box2D StaticBody

时间:2014-05-21 14:01:46

标签: rotation libgdx box2d

我知道,关于这个主题存在疑问,但我不能让我的StaticBody旋转。这是代码,我尝试旋转它:

BodyDef bDef = new BodyDef();
Body body;

bDef.position.set(x, HEIGHT-y);
bDef.type = BodyType.StaticBody;
angle = 50;
body = world.createBody(bDef);
PolygonShape pShape = new PolygonShape();
pShape.setAsBox(width, height);
FixtureDef fDef = new FixtureDef();
fDef.shape = pShape;
body.createFixture(fDef);

body.setTransform(body.getPosition(), (float) (angle*Math.PI/180));

使用以下行打印输出值:

System.out.println(body.getTransform().getRotation()/(Math.PI/180));

返回:50.0000002530119,但框不会旋转。

2 个答案:

答案 0 :(得分:3)

我认为你不应该在静态物体上使用setTransform。

创建正文后是否直接使用setTransform? 然后你可以尝试在b2BodyDef上设置角度。

bDef.angle = 50*Math.PI/180;

否则你可能会更好地使用运动体。

此外,您可以通过setAsBox方法设置角度。

答案 1 :(得分:3)

我建议您阅读文档,或者至少查看一些指南(例如good youtube channel)。

静态物体不应改变位置或角度。使用运动体。