【发布时间】:2016-10-31 13:43:43
【问题描述】:
在 libGDX Box2D 中,我有一个 DynamicBody "body" 和 StaticBody "anchor" 及其来自 "pivot joint point" 的关节和 body可以转身“枢轴点”并完美工作(位置 2)。
Body body = Box2DUtil.addRectangle(BodyDef.BodyType.DynamicBody);
Body anchor = Box2DUtil.addRectangle(BodyDef.BodyType.StaticBody);
RevoluteJointDef revoluteJointDef = new RevoluteJointDef();
revoluteJointDef.initialize(anchor, body, anchor.getWorldCenter());
world.createJoint(revoluteJointDef);
但是我想将“身体”旋转到特定的角度,当模拟正在运行并且重力 = 10 等时,身体正在转向底部它可以。当我单击一个按钮时,我想将身体转到“myNewAngle”位置,如图所示(位置 1)
float myNewAngle = 0;
body.setType(BodyDef.BodyType.StaticBody);//for not effected from gravity
body.setTransform(body.getPosition(), lastAngle * MathUtils.degreesToRadians);
我的问题是我的“身体”正在绕其原点(位置 3)旋转没用。我也不能用“电机”来做。
我怎样才能使“身体”围绕“枢轴点”动态转动?
【问题讨论】:
-
您需要将参照系更改为固定框架,然后在那里进行旋转。你想旋转什么?身体的角度,还是整个位置?
-
@pingul 我想改变具有“枢轴点”的身体的角度,但我想围绕“枢轴点”转动身体所以应该是什么代码?
标签: libgdx geometry box2d physics game-physics