按照手指在 android 上的位置在 libgdx 中旋转精灵

Rotate sprite in libgdx by following the position of finger on android

我正在尝试根据手指在触摸屏上的位置来旋转精灵。

我有一个箭头,我希望在我将它拖到屏幕上时它始终指向我的手指。

我可以使用 sprite.setRotation(angle)

轻松将精灵设置为任意旋转

我该怎么办?

如果你能指出正确的方向,我将不胜感激。

(ax, ay)是箭头中心的坐标,(fx, fy)是手指的坐标,a是角度,这里是一些伪代码:

dx = fx - ax
dy = fy - ay
if (dx == 0) {
    a = 90
    return
}
if (dy == 0) {
    a = 0
    return
}
//tan(a) == abs(dy) / abs(dx) therefore
a = arctan(dy / dx)
if (dx > 0 && dy > 0) {
    // do nothing, a is correct
} else if (dx > 0 && dy < 0) {
    a = 360 - a
} else if (dx < 0 && dy > 0) {
    a = 180 - a
} else {
    a = 180 + a
}

我还没有实施和测试它,如果有需要我会稍后做