Java Reference
In-Depth Information
5.12.3 The bouncing-balls demo
Open the bouncing-balls project and find out what it does. Create a BallDemo object and ex-
ecute its bounce method.
Exercise 5.62 Change the method bounce in class BallDemo to let the user choose how
many balls should be bouncing.
For this exercise, you should use a collection to store the balls. This way, the method can deal
with 1, 3, or 75 balls—any number you want. The balls should initially be placed in a row along
the top of the canvas.
Which type of collection should you choose? So far, we have seen an ArrayList , a HashMap ,
and a HashSet . Try the next exercises first, before you write your implementation.
Exercise 5.63 Which type of collection ( ArrayList , HashMap , or HashSet ) is most suita-
ble for storing the balls for the new bounce method? Discuss in writing, and justify your choice.
Exercise 5.64 Change the bounce method to place the balls randomly anywhere in the top
half of the screen.
Exercise 5.65 Write a new method named boxBounce . This method draws a rectan-
gle (the “box”) on screen and one or more balls inside the box. For the balls, do not use
BouncingBall , but create a new class BoxBall that moves around inside the box, bounc-
ing off the walls of the box so that the ball always stays inside. The initial position and speed of
the ball should be random. The boxBounce method should have a parameter that specifies
how many balls are in the box.
Exercise 5.66 Give the balls in boxBounce random colors.
Class variables and constants
So far, we have not looked at the BouncingBall class. If you are interested in really under-
standing how this animation works, you may want to study this class as well. It is reasonably
simple. The only method that takes some effort to understand is move , where the ball changes
its position to the next position in its path.
We shall leave it largely to the reader to study this method, except for one detail that we want to
discuss here. We start with an exercise.
Exercise 5.67 In class BouncingBall , you will find a definition of gravity (a simple inte-
ger). Increase or decrease the gravity value; compile and run the bouncing ball demo again. Do
you observe a change?
Search WWH ::

Custom Search