<< Chapter < Page Chapter >> Page >
  • setup
  • getDelta
  • gameLoop

The constructors for the AppGameContainer class

Listing 1 instantiates a new object of the AppGameContainer class by calling a constructor that takes a single parameter of the Slick2D interfacetype Game .

The source code for that constructor is shown in Listing 3 .

Listing 3 . Constructor for the AppGameContainer class that takes a single parameter.
public AppGameContainer(Game game) throws SlickException { this(game,640,480,false);}//end constructor

A constructor with four parameters

The code in Listing 3 simply calls another overloaded version of the constructor passing four default parameters that specify a game window of 640x480 pixels.

The constructor that takes four parameters is shown in Listing 4 .

Listing 4 . Constructor for the AppGameContainer class that takes four parameters.
public AppGameContainer(Game game, int width,int height, boolean fullscreen)throws SlickException { super(game);originalDisplayMode = Display.getDisplayMode();setDisplayMode(width,height,fullscreen);}//end constructor

The first parameter is a reference to the game that is to be wrapped by the GameContainer object. The code in Listing 4 passes that reference to its superclass, GameContainer , where it is saved in a protected variable of type Game named game . As a protected variable, it is accessible to all of the methods of the AppGameContainer class for use later.

Then Listing 4 saves the current display mode in a variable named originalDisplayMode , presumably to be used later.

Finally, Listing 4 calls the method named setDisplayMode to set the display mode to match the incoming parameters.

(This is the constructor that you would use if you wanted to cause the size of the game window to be something other than the default of 640 by 480pixels.)

The setup method of the AppGameContainer class

The setup method is fairly long and complicated. Most of the code in the method has to do with the creation and formatting of the gamewindow. I will skip over that code and leave it as an exercise for interested students to analyze.

Initialization of the game

Finally a statement near the end of the setup method calls a method named init on a reference to the Game object, passing a reference to the object of type AppGameContainer as a parameter.

This is what we would refer to as a callback that uses the reference to the Game object that was passed to the constructor to call the method named init on the Game object.

The effect is to call the method named init belonging to the game program shown in Listing 6 . This causes the initialization code (if any) that you have written into the overridden init method to be executed. If the overridden version of the method has an empty body (as in Listing 6 ) , it simply returns without doing anything. This is how your game gets initialized.

The getDelta method of the GameContainer class

The AppGameContainer class inherits a protected method named getDelta from its superclass named GameContainer .

The getDelta method is called from the start method shown in Listing 2 .

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