使用 libgdx 触摸板旋转播放器以面向移动方向

Rotate player using libgdx touchpad to face moving direction

我遇到这个问题已经超过 2 天了。不断调整。我就是做不出来。

我有一个播放器纹理(播放器面向左侧),我想使用触摸板对其进行旋转。所以玩家将面向他的 运行 方向。

到目前为止我有这个:

double facerotation = Math.atan2(touchpad.getKnobPercentY(), touchpad.getKnobPercentX());

spriteBatch.draw(runningFrame, player.getPosition().x, player.getPosition().y, Player.getSize() / 2, Player.getSize() / 2, Player.getSize(), Player.getSize(), 1, 1, facerotation * 100, false);

但是 "roation*100" 他旋转了 2 圈,没有他几乎没有旋转。我什至尝试为上面的 atan2 函数切换 X 和 Y 值。但我从来没有让他只朝我移动的方向旋转。我还尝试了 atan 函数,还交换了 X 和 Y 值。

请帮助我。我尝试了数千种方法、不同的计算和我在 google 上看到的东西。没有什么能给我带来预期的效果。

就用一个Vector2吧。用它来存储你的旋钮百分比 y 和 x。然后你可以用 vector2.angle().

获得度数的旋转
Vector2 v = new Vector2(touchpad.getKnobPercentX(), touchpad.getKnobPercentY());
float angle = v.angle();
runningFrame.setRotation(angle);