diff --git a/csharp/BrickOut.Maui/BrickOut.GameLogic/BrickOutGame.cs b/csharp/BrickOut.Maui/BrickOut.GameLogic/BrickOutGame.cs index 3c46ed8..9350f66 100644 --- a/csharp/BrickOut.Maui/BrickOut.GameLogic/BrickOutGame.cs +++ b/csharp/BrickOut.Maui/BrickOut.GameLogic/BrickOutGame.cs @@ -2,6 +2,23 @@ public class BrickOutGame { - public GameBoard GameBoard { get; set; } = GameBoard.NewGame(); + public GameBoard GameBoard { get; set; } = GameBoard.NewGame(); + public void UpdateBallPosition() + { + var newX = GameBoard.Ball.Location.X + GameBoard.Ball.VelocityX; + var newY = GameBoard.Ball.Location.Y + GameBoard.Ball.VelocityY; + + if (newX >= GameBoard.Width -5 || newX <=0) + { + GameBoard.Ball.VelocityX *= -1; + } + + if (newY >= GameBoard.Height -5 || newY <= 0) + { + GameBoard.Ball.VelocityY *= -1; + } + + GameBoard.Ball.SetLocation(newX, newY); + } } \ No newline at end of file diff --git a/csharp/BrickOut.Maui/BrickOut.Wpf/MainWindow.xaml b/csharp/BrickOut.Maui/BrickOut.Wpf/MainWindow.xaml index 7b12879..9f1f263 100644 --- a/csharp/BrickOut.Maui/BrickOut.Wpf/MainWindow.xaml +++ b/csharp/BrickOut.Maui/BrickOut.Wpf/MainWindow.xaml @@ -6,7 +6,7 @@ xmlns:local="clr-namespace:BrickOut.Wpf" mc:Ignorable="d" Loaded="MainWindow_OnLoaded" - Title="BrickOut" Height="700" Width="480"> + Title="BrickOut" Height="700" Width="495"> diff --git a/csharp/BrickOut.Maui/BrickOut.Wpf/MainWindow.xaml.cs b/csharp/BrickOut.Maui/BrickOut.Wpf/MainWindow.xaml.cs index 2751c6f..7a345a1 100644 --- a/csharp/BrickOut.Maui/BrickOut.Wpf/MainWindow.xaml.cs +++ b/csharp/BrickOut.Maui/BrickOut.Wpf/MainWindow.xaml.cs @@ -83,9 +83,8 @@ private void UpdateGameBoard() private void UpdateBallPosition() { - var newX = currentGame.GameBoard.Ball.Location.X + currentGame.GameBoard.Ball.VelocityX; - var newY = currentGame.GameBoard.Ball.Location.Y + currentGame.GameBoard.Ball.VelocityY; - currentGame.GameBoard.Ball.SetLocation(newX, newY); + currentGame.UpdateBallPosition(); + Canvas.SetLeft(ballRectangle, currentGame.GameBoard.Ball.Location.X); Canvas.SetTop(ballRectangle, currentGame.GameBoard.Ball.Location.Y); }