下面是我的代码的一部分,用于处理玩家触摸屏幕后向某个角度旋转的玩家精灵:
touchState = TouchPanel.GetState();
Vector2 touchPosition;
if (touchState.Count > 0)
{
touchPosition = new Vector2(touchState[0].Position.X, touchState[0].Position.Y);
targetPosition = Math.Atan2(player.Position.X - touchPosition.X, player.Position.Y - touchPosition.Y);
if (angle_radians < targetPosition)
{
angle_radians += 2 * fps;
}
if(angle_radians > targetPosition)
{
angle_radians -= 2 * fps;
}
player.Angle = angle_radians * -1;
}
我遇到的问题是当角度超过某一点(我相信3.15弧度?)时,逻辑不再正常工作,精灵在360圈内反转方向,直到达到目标位置试。
我知道我从这个逻辑中遗漏了一些东西,我可以看到问题,但我不确定如何处理它。
如何防止精灵反转方向?
由于