General background information
While studying the past couple of modules, you have learned how to create and then to improve a class named Sprite from which you can instantiate objects that behave as sprites.
Another improvement
In this module, we will once again improve the Sprite class, this time adding the capability for a sprite to determine if it has collidedwith another sprite. This capability is critical for game development in many areas.
Definition of a collision
Our definition of a collision is based on the bounding rectangles for the images that represent the two sprites. If the rectangles intersect in theircurrent positions, a collision is deemed to have occurred. If they don't intersect, there is no collision.
Preview
This program is not yet a game because it doesn't provide player interaction. Instead it is a demonstration program that demonstrates sprite collisiondetection is a rather interesting way.
Figure 1 shows a screen snapshot at three different points in time while the program was running.
An epic battle
The demonstration program chronicles a battle between spiders and ladybugs. When the program starts, there are 200 black widow spiders and five ladybugs onthe web in the game window. (See the top image in Figure 1 .)
Spider and ladybug motion
The spiders move at different speeds in different directions but generally toward the southeast. When a spider goes outside the game window on the rightside or the bottom, it reappears on the left side or the top.
The ladybugs also move at different speeds in different directions but generally toward the northwest. When a ladybug goes outside the game window onthe left side or the top, it reappears on the right side or on the bottom.
The spiders don't die easily
When a ladybug collides with a black widow spider, the spider disappears but is reincarnated as a green spider 128 pixels to the right of its originalposition.
When a ladybug collides with a green spider, the spider disappears but is reincarnated again as a small brown spider 128 pixels to the right of itsoriginal position.
The death blow
Finally, when a ladybug collides with a brown spider, the spider is eaten and is removed from the population of spiders. Therefore, all of the spiderseventually disappear and the ladybugs continue marching on victorious.
Output screen images
The top image
The top image in Figure 1 was taken shortly after the program began running. Therefore, the game window was mostly populated with ladybugs and black widowspiders. There are a few green spiders and I believe I see one brown spider at the very bottom border near the right side.
Figure 1 . Screen output at three different times while the program was running.
The middle image
The middle image in Figure 1 shows the program output after the program has been running for awhile. At this point in time, the game window is mainlypopulated with ladybugs, green spiders, and brown spiders. However, there are a few black widow spiders still in the picture.
The bottom image
The bottom image shows the program output at an even later point in time. At this point, the game window is populated with ladybugs, one green spider and afew brown spiders. Given enough time and a little luck, the ladybugs will collide with and destroy even these remaining spiders.