我需要让一个精灵面向光标或触摸点。
触摸点的向量计算如下:
问题在于某些旋转存在小偏移,例如(红点表示触摸位置,箭头是需要旋转的精灵),在第一张图片中大致在应该在的位置,但在其他图片中则偏离太远,可能会导致此错误的原因是什么?
如您所见,在前两张图片中,X轴的微小变化会使准确度急剧下降。
更多示例:
game.getCamera().unproject(
new Vector3().set(Gdx.input.getX(), Gdx.input.getY(), 0)
, 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight())
然后,我使用以下方法计算精灵需要旋转的角度:
public void rotateTo(Vector3 vector) {
double angle = Math.atan2(vector.y - position.y, vector.x - position.x);
rotation = (float) Math.toDegrees(angle) - 90;
sprite.setRotation(rotation);
}
问题在于某些旋转存在小偏移,例如(红点表示触摸位置,箭头是需要旋转的精灵),在第一张图片中大致在应该在的位置,但在其他图片中则偏离太远,可能会导致此错误的原因是什么?
如您所见,在前两张图片中,X轴的微小变化会使准确度急剧下降。
更多示例:
sprite.setOriginCenter();
,但结果相同。我认为libgdx默认将原点设置为中心。 - user36976