Я делаю игру XNA и столкнулся с небольшой проблемой, выясняя немного векторной математики.
У меня есть класс, представляющий 2D-объект с целочисленными координатами X и Y и плавающей точкой вращения. Мне нужно иметь свойство Vector2 для Position, которое получает и устанавливает X и Y в качестве Vector2, которое было преобразовано с использованием плавающего Rotation. Таким образом, я могу сделать что-то вроде:
Position += new Vector2((thumbstick.X * scrollSpeed), -(thumbstick.Y * scrollSpeed));
и объект будет двигаться в своем собственном направлении вверх, а не в направлении вверх.
Пока что это то, что у меня есть ... Я думаю, что набор правильный, но для + = изменений тоже нужно получить, и ответ просто не приходит ко мне ...>.>
public Vector2 Position
{
get
{
// What goes here? :S
}
set
{
X = value.X * (int)Math.Cos(this.Rotation);
Y = value.Y * (int)Math.Cos(this.Rotation);
}
}