Вам не нужно переносить угол при передаче его на SpriteBatch.Draw
. Но если вы хотите по какой-то причине обернуть угол, лучше использовать MathHelper.WrapAngle
( MSDN ).
Теперь скажите, что у вас есть Vector2
, который представляет направление и расстояние (как вы могли бы, например, если бы вы сделали mousePos - carPos
, для направления и расстояния от автомобиля до курсора). И вы хотите взять это направление и преобразовать его в угол. Используйте метод расширения , например, такой:
public static float Angle(this Vector2 v)
{
return (float)Math.Atan2(v.Y, v.X);
}
Итак, чтобы получить свой угол, вы должны сделать что-то вроде: (mousePos - carPos).Angle()
.
Подробнее см. Документацию для Atan2
.