<< Chapter < Page Chapter >> Page >

Discussion and sample code

By now, you should have a pretty good understanding of the basics of writing a game program using Slick2D using the approach described above .

Previous modules have presented skeleton code for writing such a program. In this module, I will present and discuss a program that has a little more meat onthat skeleton's bones to illustrate a few more concepts. Future modules will dig much more deeply into the capabilities provided by the Slick2D library.

The program named Slick0130a

Listing 10 provides a complete listing for the program named Slick0130a . I will explain the differences between this program and the skeleton programs presented in earlier modules. Before getting into the codedetails, however, I will show you the output produced by the program.

The screen output

Figure 1 shows a screen shot of the output in the game window while the program is running.

Figure 1 . Screen output from program named Slick0130a.
Missing image.

The frame rate

The text in the upper-left corner of Figure 1 is the rate in frames per second that the game loop is running. (Two frames per second in this case.) This value is placed there by default. The GameContainer class provides a public method named setShowFPS that you can call whenever you have access to the AppGameContainer object to disable or enable the display of this information.

The reported value for FPS is always an integer. On my computer, it bounces back and forth between 2 and 3 frames per second when this program is running.

The total elapsed time

The first line of text near the center of Figure 1 shows the computed value of the total elapsed time in seconds since the game loop started running. As you will see later, this value is computed byaccumulating successive values of the incoming delta parameter in the update method.

If you compile and run this program, you should see this value counting up in one-half second increments, which is consistent with a frame rate of two framesper second.

The value of delta

The second line of text near the center of Figure 1 shows the value of delta received by the most recent call to the update method. On my computer, this value seems to range between 499 and 501 milliseconds, which isconsistent with a frame rate of two frames per second.

Beginning of the class named Slick0130a

Listing 5 shows the beginning of the class named Slick0130a including the declaration of some instance variables and the constructor.

Listing 5 . Beginning of the class named Slick0130a.
public class Slick0130a extends BasicGame{//Instance variables for use in computing and // displaying total time since program start and// time for each frame. double totalTime = 0;int incrementalTime = 0; public Slick0130a(){//Call to superclass constructor is required. super("Slick0130a, Baldwin.");}//end constructor

The instance variables that are declared in Listing 5 are used to compute and display the values shown near the center of Figure 1 .

The main method

Listing 6 shows the main method for the program named Slick0130a .

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