<< 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.
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 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 |
Notification Switch
Would you like to follow the 'Anatomy of a game engine' conversation and receive update notifications?