<< Chapter < Page Chapter >> Page >

Figure 3 shows the sprite answering nature's call. This is a flipped version of one of images from the bottom row of Figure 1 .

Figure 3 . Sprite answering nature's call.
Missing image.

Sprite running to the left

Figure 4 shows the sprite running from right to left. This is one of the images from the top row of Figure 1 .

Figure 4 . Sprite running to the left.
Missing image.

What you have learned

In the previous module , you learned how to use objects of the SpriteSheet class and the Animation class to perform simple sprite sheet animation.

What you will learn

In this module, you will learn how to use objects of the SpriteSheet class and the Animation class to perform more complex sprite sheet animations than was in the previous module.

General background information

The SpriteSheet class

There isn't much that's new in this module regarding the SpriteSheet class. The program instantiates and populates a SpriteSheet object and used the images stored in that object to populate an Animation object.

The SpriteSheet object is used in a different way than was the case in the previous module, but that will be explained in conjunction withpopulating the Animation object.

The Animation class

An Animation object is populated in a significantly different way in this module than in the previous module.

In the previous module, a SpriteSheet object's reference was passed to the Animation constructor along with a specification of the images to be extracted from the sprite sheet and the amount of time thateach image should be displayed. The Animation constructor extracted the images from the sprite sheet and populated the new Animation object automatically. Among other restrictions, it was necessary that each image bedisplayed for the same amount of time.

One image at a time

In this module, an empty Animation object is instantiated and then populated one image at a time. (Of course, loops are used to make that process easier.) Among other things, this makes it possible to:

  • Use multiple copies of the individual images on the sprite sheet
  • Use flipped versions of the images on the sprite sheet
  • Specify different display times for the different images on the sprite sheet

Different animation rates

For example, the display times for the images from the bottom row of Figure 1 are four times greater than the display times for the images from the top row. Thus, the animation slows down when the spritestops to answer nature's call on the right side of the game window then speeds up again when the sprite starts running from right to left.

Discussion and sample code

The class named Slick0190

Will discuss in fragments

A complete listing of the program named Slick0190 is provided in Listing 11 . I will break the program down and discuss it in fragments.

Listing 1 shows the beginning of the class named Slick0190 down through the main method. There is nothing in Listing 1 that should require an explanation beyond the embedded comments. However, it is worth noting thatunlike the previous module, Listing 1 instantiates a new empty object of the class Animation and saves its reference in the instance variable named animation . This object will be populated with images by the init method later.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Anatomy of a game engine. OpenStax CNX. Feb 07, 2013 Download for free at https://legacy.cnx.org/content/col11489/1.13
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Anatomy of a game engine' conversation and receive update notifications?

Ask