XNA - Pong Clone - ¿Bola reflectante cuando golpea una pared?
Estoy tratando de hacer que la pelota rebote en las 'paredes' superiores e inferiores de mi interfaz de usuario al crear un clon de Pong 2D. Este es mi Game.cs
public void CheckBallPosition()
{
if (ball.Position.Y == 0 || ball.Position.Y >= graphics.PreferredBackBufferHeight)
ball.Move(true);
else
ball.Move(false);
if (ball.Position.X < 0 || ball.Position.X >= graphics.PreferredBackBufferWidth)
ball.Reset();
}
En este momento estoy usando esto en mi Ball.cs
public void Move(bool IsCollidingWithWall)
{
if (IsCollidingWithWall)
{
Vector2 normal = new Vector2(0, 1);
Direction = Vector2.Reflect(Direction,normal);
this.Position += Direction;
Console.WriteLine("WALL COLLISION");
}
else
this.Position += Direction;
}
Funciona, pero estoy usando una Normal escrita manualmente y quiero saber cómo calcular la normalidad de las partes superior e inferior de la pantalla.