Я пытаюсь изучить XNA, написав небольшую 2D-игру, это перспектива сверху вниз, и я пытаюсь сделать двойное движение, перемещаясь вдоль оси с помощью клавиш «Влево» и «Вверх», а также смотря вправо курсор мыши, чтобы игрок мог бегать и целиться одновременно.
У меня есть один вектор для позиции игрока (m_PlayerPos) и один вектор для позиции мыши (m_MousePos), и я пытаюсь получить правильный угол к позиции мыши.
Я использую метод формулы:
public static float Angle(Vector2 from, Vector2 to)
{
return (float)Math.Atan2(from.X - to.X, from.Y - to.Y);
}
Это работает, но по какой-то причине метод работает только наполовину, вдоль оси X. Когда мышь находится точно слева от игрока, игрок смотрит прямо на мышь.
Но если я подхожу к верхней части плеера, он смотрит вниз, а если мышь находится ниже плеера, игрок смотрит вверх. Так что мне нужно инвертировать ось Y, но я не уверен, как.
Заранее спасибо за любые отзывы.