在我的项目中,我有一个身体,我已经宣布为运动身体。它与一个大炮精灵相关联 游戏玩法是这样的,用户可以通过拖动旋转大炮。我计算旋转角度并相应地旋转大炮精灵。 但我无法弄清楚如何旋转身体以使其与大炮精灵保持对齐。
关于
答案 0 :(得分:0)
您可以使用body.setTransform(float x, float y, float angle)
或body.setTransform(Vector2 position, float angle)
手动设置身体的旋转。请注意,angle变量必须以弧度为单位,因此可能需要调用MathUtils.degreesToRadians
。对于位置参数,您可以使用正文的现有位置(body.getPosition()
)。
编辑:当你旋转身体时,我很确定原点将位于重心处。我假设当你旋转你的大炮时,原点不在中心。为了避免奇怪的旋转行为,当您初始化大炮的形状时,可以调用polygonShape.setAsBox(float halfWidth, float halfHeight, Vector2 centre, float angle)
。 Vector2 centre
允许您手动更改我认为旋转的身体中心。