<< Chapter < Page Chapter >> Page >

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.

missing image

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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Xna game studio. OpenStax CNX. Feb 28, 2014 Download for free at https://legacy.cnx.org/content/col11634/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Xna game studio' conversation and receive update notifications?

Ask