Есть ли более легкий способ поворачивания вектора чем банальная тригонометрия, т.е.
if (Keyboard.GetState().IsKeyDown(Keys.D))
{
playerAngle += MathHelper.PiOver4 / 10;
}
if (Keyboard.GetState().IsKeyDown(Keys.A))
{
playerAngle -= MathHelper.PiOver4 / 10;
}
if (Keyboard.GetState().IsKeyDown(Keys.W))
{
playerSpeed += new Vector2((float)Math.Cos(playerAngle) * playerAbsSpeed, (float)Math.Sin(playerAngle) * playerAbsSpeed);
}
if (Keyboard.GetState().IsKeyDown(Keys.S))
{
playerSpeed += new Vector2(-(float)Math.Cos(playerAngle) * playerAbsSpeed, -(float)Math.Sin(playerAngle) * playerAbsSpeed);
}
?