For this assignment you will modify your pong program from lab one to make the game Break Out. For those that do not know the game, Break Out is a game similar to Pong that consists of a user controlled paddle and a ball bouncing around the screen. Break Out also includes bricks (rectangles) at the opposite side of the screen as the paddle. When the ball bounces off of the bricks they disappear. The player wins the game by making all of the bricks disappear.
You can use the Pong code that we created in class for reference. Be sure your program is named Break Out and not Pong. Once you have the program working like a game of Pong, modify it by doing the following:
paintComponent
method a loop that iterates
over the entire array of sprites and for each sprite, draws it.
Test your program before proceeding. It should display all of the
bricks, but the ball should pass right through them.actionPerformed
method
that uses the overlap methods of the sprite class to test if the
ball intersects with any of the bricks and on which side. If the
ball does, then it should change the direction based on the side
that it hit. If the ball intersects multiple sides, compare the
amount of overlap with each of the sides. The ball should change
direction as if it only intersected with the side with a smaller
overlap. If the ball intersects with multiple sides and the
amount of overlap is the same, the ball should change direction as
if it only intersected with one side, but it does not matter
which. Test your program before proceeding. The ball should
bounce off of the bricks, but the bricks should not disappear.paintComponent
method to only draw a sprite if it
is visible. Modify the actionPerformed
method to
only perform collision detection if the sprite is visible.
Finally, add to the if statement that tests if the ball hits a
brick to set the brick that was hit to not be visible. Test your
program, the bricks should disappear after being hit by the
ball.Submission: Submit your code as a zip file with your name as the zip file name on the course Inquire site.
Bonuses
Add bricks with different colors that when hit modify the game play to make it easier for the player. Some examples are, slowing down the ball, growing the paddle, growing the ball, or adding an extra ball. To make it more fun the bonuses can fall from the destroyed brick and only be awarded if they intersect with the paddle.
Spin
The game can be made more fun by giving the user more control over how the ball bounces off of the paddle. In order to do this you will need to modify the ball's direction without modifying its speed. This is difficult when both the speed and direction are specified with velocity. Change the ball's instance data to be direction (the angle in radians from the x-axis the ball is traveling) and speed (the number of pixels per frame of animation). When the ball hits the paddle use the velocity of the paddle to modify the angle that the ball bounces. The faster the paddle is moving the more the ball's angle should change.