我知道,关于这个主题存在疑问,但我不能让我的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
,但框不会旋转。
答案 0 :(得分:3)
我认为你不应该在静态物体上使用setTransform。
创建正文后是否直接使用setTransform? 然后你可以尝试在b2BodyDef上设置角度。
bDef.angle = 50*Math.PI/180;
否则你可能会更好地使用运动体。
此外,您可以通过setAsBox方法设置角度。
答案 1 :(得分:3)
我建议您阅读文档,或者至少查看一些指南(例如good youtube channel)。
静态物体不应改变位置或角度。使用运动体。