当一个精灵旋转到一个角度时,如何防止它在一个点后反转方向?

时间:2017-11-06 22:03:41

标签: c# android xna 2d monogame

下面是我的代码的一部分,用于处理玩家触摸屏幕后向某个角度旋转的玩家精灵:

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圈内反转方向,直到达到目标位置试。

我知道我从这个逻辑中遗漏了一些东西,我可以看到问题,但我不确定如何处理它。

如何防止精灵反转方向?

由于

0 个答案:

没有答案