<< Chapter < Page Chapter >> Page >

Straightforward code

The code in Listing 1 is straightforward. It simply declares a number of instance variables, most of which become properties of the object. Listing 1 also defines a constructor that receives and saves values for many of thoseproperties.

The remaining code in Sprite01

If you examine the remaining code in Listing 11 , you will see that it consists of simple property accessor methods along withsome methods that control the behavior of an object of the class. I will explain those behavioral methods when I use them later in this and the next two modules.

The class named Slick0200

Will discuss in fragments

A complete listing of the program named Slick0200 is provided in Listing 10 . I will break the program down and explain it in fragments.

Beginning of the class named Slick0200

The class named Slick0200, down through the main method is shown in Listing 2 .

Listing 2 . Beginning of the class named Slick0200.
public class Slick0200 extends BasicGame{//Store references to Sprite01 objects here. Sprite01[]sprites = new Sprite01[1000];//Populate this with a ladybug image later.Image image = null;//Populate these variables with the background // image along with the width and height of the// image later. Image background = null;float backgroundWidth; float backgroundHeight;//This object produces random float values for a// variety of purposes. Random random = new Random();//Frame rate we would like to see and maximum frame// rate we will allow. int targetFPS = 60;//----------------------------------------------------// public Slick0200(){//constructor//Set the title super("Slick0200, baldwin");}//end constructor //----------------------------------------------------//public static void main(String[] args)throws SlickException{ AppGameContainer app = new AppGameContainer(new Slick0200(),414,307,false); app.start();}//end main

Everything in Listing 2 is completely straightforward and should not require an explanation beyond the embedded comments.

The init method

The init method begins in Listing 3 .

Listing 3 . Beginning of the init method.
public void init(GameContainer gc) throws SlickException {//Create and save the background image object. Also // compute and save the width and height of the image.background = new Image("background.jpg"); backgroundWidth = background.getWidth();backgroundHeight = background.getHeight(); //Create and save an Image object of a ladybug. The// sprites will wear this image image = new Image("ladybug.png");

There is also nothing new in Listing 3 . Therefore, the embedded comments should suffice to explain the code.

Populate the array

Listing 4 uses a for loop to populate the array object referred to by the variable named sprites that was declared in Listing 2 . The array object is populated with references to objects of the class Sprite01 .

Listing 4 . Populate the array.
//Populate the array with references to objects of // the Sprite01 class.for(int cnt = 0;cnt<sprites.length;cnt++){ sprites[cnt]= new Sprite01( image,//ladybug imagebackgroundWidth/2.0f,//initial position backgroundHeight/2.0f,//initial position(random.nextFloat()>0.5) ? 1f : -1f,//direction (random.nextFloat()>0.5) ? 1f : -1f,//direction 0.1f+random.nextFloat()*2.0f,//step size0.1f+random.nextFloat()*2.0f,//step size random.nextFloat()*0.15f,//scalenew Color(random.nextFloat(),//color filter random.nextFloat(),random.nextFloat())); }//end for loopgc.setTargetFrameRate(targetFPS);//set frame rate }//end init

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