Para responder a su primera pregunta, 0 grados apunta hacia arriba, 90 grados apunta hacia la derecha, 180 grados hacia abajo y 270 grados hacia la izquierda. Here es un sencillo tutorial de rotación 2D XNA para darle más información.
En cuanto a la conversión de vectores de ángulos y hacia atrás, me encontré un par buenas implementaciones here:
Vector2 AngleToVector(float angle)
{
return new Vector2((float)Math.Cos(angle), (float)Math.Sin(angle));
}
float VectorToAngle(Vector2 vector)
{
return (float)Math.Atan2(vector.Y, vector.X);
}
Además, si usted es nuevo en la programación 2D, es posible que desee ver en Torque X 2D, que proporciona una Mucho de esto para ti. Si ha pagado para desarrollar XNA, obtiene los binarios del motor de forma gratuita, y hay una clase de utilidad que convierte los ángulos en vectores y viceversa, así como otras funciones útiles como esta.
Edit: Como señaló Ranieri en los comentarios, esa función no tiene sentido cuando el aumento es de 0 grados. Aquí hay una que hace (UP es (0, -1), a la derecha es (1, 0), es decir hacia abajo (0, 1), izquierda es (-1, 0):
Vector2 AngleToVector(float angle)
{
return new Vector2((float)Math.Sin(angle), -(float)Math.Cos(angle));
}
float VectorToAngle(Vector2 vector)
{
return (float)Math.Atan2(vector.X, -vector.Y);
}
También me gustaría para observar que he estado usando Torque por un tiempo, y usa 0 grados para arriba, así que ahí es donde obtuve esa parte. Hasta el significado, en este caso, dibuja la textura en la pantalla de la misma manera que está en el archivo. así negativo sería dibujar la textura al revés.
Algo pasa. Dice 0 grados hacia arriba, pero su función regresa (1,0), que es correcta en la mayoría de los sistemas de coordenadas que he visto, para 0 grados. – drxzcl
¡Buena captura, gracias! – Venesectrix