Повернуть спрайт в направлении его вектора движения

У меня есть XNA Windows Phone Game, и вы перемещаете спрайт с помощью акселерометра.

Моя проблема в том, что я не могу понять, как заставить спрайт смотреть в направлении, в котором он движется. Пока это мой код:

        arrowPos.Y += -accelState.X*10; 
        arrowPos.X += -accelState.Y*10;

        rotation = -(float)Math.Atan2(arrowPos.Y, arrowPos.X);

1 ответ

Решение

Ваш текущий rotation В вычислениях используется текущая позиция спрайта - спрайт может находиться в той позиции, движется ли он на север или запад.

Попробуйте использовать accelState.X а также accelState.Y значения вместо.

Другие вопросы по тегам