<< Chapter < Page | Chapter >> Page > |
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.
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.
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. |
---|
![]() |
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.
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 .
Listing 6 shows the main method for the program named Slick0130a .
Notification Switch
Would you like to follow the 'Anatomy of a game engine' conversation and receive update notifications?