मैं एक्सएनए सीख रहा हूं और लगभग सभी शैक्षणिक किट http://creators.xna.com/en-US/ पर पाए गए हैं। मैं हमेशा वेक्टर पर Normalize() को एक कॉल देखता हूं। मैं समझता हूं कि सामान्य रूप से वेक्टर को इकाई लंबाई में परिवर्तित कर देता है, इसलिए यह सब दिशा देता है।एक वेक्टर को सामान्यीकृत करने के लिए कब?
अब मेरा प्रश्न यह है कि सामान्यीकरण कब और यह वास्तव में मेरी मदद करता है। मैं 2 डी प्रोग्रामिंग कर रहा हूं इसलिए कृपया 2 डी अवधारणाओं में समझाएं और 3 डी नहीं।
संपादित करें: यहाँ XNA किट में कोड है, तो क्यों मानक के अनुसार बुलाया जा रहा है?
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;
}