Estoy aprendiendo XNA y en casi todos los kits educativos que se encuentran en http://creators.xna.com/en-US/. Siempre veo una llamada a Normalize() en un vector. Entiendo que la normalización básicamente convierte el vector en la longitud de la unidad, por lo que todo lo que da es dirección.Cuándo normalizar un vector?
Ahora mi pregunta es cuándo normalizar y en qué me ayuda exactamente. Estoy haciendo una programación 2D así que explíqueme en conceptos 2D y no en 3D.
EDITAR: Aquí hay un código en el kit XNA, entonces ¿por qué se llama a Normalize?
if (currentKeyboardState.IsKeyDown(Keys.Left) ||
currentGamePadState.DPad.Left == ButtonState.Pressed)
{
catMovement.X -= 1.0f;
}
if (currentKeyboardState.IsKeyDown(Keys.Right) ||
currentGamePadState.DPad.Right == ButtonState.Pressed)
{
catMovement.X += 1.0f;
}
if (currentKeyboardState.IsKeyDown(Keys.Up) ||
currentGamePadState.DPad.Up == ButtonState.Pressed)
{
catMovement.Y -= 1.0f;
}
if (currentKeyboardState.IsKeyDown(Keys.Down) ||
currentGamePadState.DPad.Down == ButtonState.Pressed)
{
catMovement.Y += 1.0f;
}
float smoothStop = 1;
if (catMovement != Vector2.Zero)
{
catMovement.Normalize();
}
catPosition += catMovement * 10* smoothStop;
}