我一直在尝试对 PlayN 中的 Body 对象应用角度脉冲,但无济于事。无论我输入哪个值(径向),身体的角度都不会改变。我也尝试设置扭矩,但没有结果。
不起作用的示例代码:
BodyDef def = new BodyDef();
def.type = BodyType.DYNAMIC;
Body body = world.createBody(def);
float degToRad = (float) (180 / Math.PI);
float radials = (float) (50 / degToRad);
// None of the following options work.
body.applyAngularImpulse(radials); // Immediate angular change.
body.applyTorque(radials); // Angular change over time.
如何在不手动设置角速度(例如使用 setAngularVelocity)的情况下获得有效的身体对象来改变其角度?
提前致谢!
我确实注意到通过调用 setWake 方法来重置扭矩和角速度,我从不手动执行该方法,但它是由 Island 类调用的:
public void setAwake(boolean flag) {
...
m_angularVelocity = 0.0f;
m_torque = 0.0f;
...
}
注意:设置角速度不是一个选项,因为我依赖于物理模拟。我找到了一篇关于 Box2D 角度旋转的文章,但它并没有改变 applyAngularImpulse 方法的结果。