Положение стены должно быть чем-то, что вы знаете. Это либо константа, потому что она никогда не движется, либо объект-спрайт, имеющий позицию.
аюсь заставить мяч отскочить от верхних и нижних «стенок» моего пользовательского интерфейса при создании 2D-клона Pong. Это мой 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();
}
На данный момент я использую это в моем 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;
}
Это работает, но я использую типизированный вручную Нормальный, и я хочу знать, как рассчитать нормаль верхней и нижней частей экрана?