将对象角度设置为目标角度的动画

时间:2015-01-27 03:15:47

标签: java point angle animated

我正在编写游戏编程。在这个游戏中,有一个物体需要旋转才能面对另一个物体。

代码:

这就是我所做的:

//targetAngle is defined to be the angle pointing towards the other object
//angle is the angle of this object
angle += 0.05 * (targetAngle - angle);

问题:

这非常有效,但是对象经常以非常间接的方式旋转。例如,如果物体面向3点钟并且需要面对5点钟,物体可能会逆时针方向行进而不是更顺时针方向。

我想让对象以最直接的方式旋转。关于如何做到这一点的任何想法?

感谢您的时间和意见。 如果您投票否决,请告诉我为什么我可以改进这个问题。

注意,我在这个程序中使用弧度。

1 个答案:

答案 0 :(得分:1)

我认为一种方式就像......

dAngle = (targetAngle - angle) % two_pi; //Range of (-two_pi .. two_pi)
dAngle += (dAngle > pi? -two_pi : dAngle < -pi? two_pi : 0); //Range of [-pi .. pi]
angle += 0.05 * dAngle;

另外,如果你想要它总是面对一个玩家,但不知道正确的角度,看看...... Rotate Texture in function of player position