<< Chapter < Page | Chapter >> Page > |
Will explain in fragments
A complete listing of the class named Slick0220 is provided in Listing 8 . I will break the code down and explain it in fragments.
Beginning of the class named Slick0220.
The beginning of the class named Slick0220 , down through the main method is shown in Listing 1 .
Listing 1 . Beginning of the class named Slick0220. |
---|
public class Slick0220 extends BasicGame{//The values of the following variables can be changed
// to effect the spread of the disease.//Set the life expectancy of an infected sprite// in frames.
int infectedSpriteLife = 96;//Set the maximum fraction of exposed sprites that will// become infected.
float probabilityOfInfection = 0.5f;//Set the maximum step size that a sprite will move in// one frame.
float maxStepSize = 1;//Set the initial number of sprites in the population.int numberSprites = 1000;//References to Sprite01 objects are stored here.
ArrayList<Sprite01>sprites =
new ArrayList<Sprite01>();//These variables are populated with references to Image
// objects later.Image redBallImage;
Image greenBallImage;//This variable is populated with a reference to a Sound// object later.
Sound blaster;//These variables are populated with information about// the background image later.
Image background = null;float backgroundWidth;
float backgroundHeight;//This object is used to produce random values for a// variety of purposes.
Random random = new Random();//This is the frame rate we would like to see and// the maximum frame rate we will allow.
int targetFPS = 24;//----------------------------------------------------//
public Slick0220(){//constructor//Set the title
super("Slick0220, baldwin");}//end constructor
//----------------------------------------------------//public static void main(String[] args)throws SlickException{
AppGameContainer app = new AppGameContainer(new Slick0220(),500,500,false);
app.start();}//end main |
There is nothing new in Listing 1 , so there should be no need for an explanation beyond the embedded comments.
The init method begins in Listing 2 .
Listing 2 . Beginning of the init method. |
---|
public void init(GameContainer gc)
throws SlickException {//Create Image objects that will be used to visually
// represent the sprites.redBallImage = new Image("redball.png");
greenBallImage = new Image("greenball.png");//Create a Sound object.blaster = new Sound("blaster.wav");
//Create a background image and save information// about it.
background = new Image("background01.jpg");backgroundWidth = background.getWidth();
backgroundHeight = background.getHeight();//Add a red sprite as the first element in the// ArrayList object. This sprite carries the disease
// into the population.//Put it in the center of the game window. Make the
// direction of motion random. Make the speed of// motion (step size)random. Make the size random.
// Specify a white (do nothing)color filter.sprites.add(new Sprite01(
redBallImage,//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
0.5f+random.nextFloat()*0.5f,//scalenew Color(1.0f,1.0f,1.0f)));//color filter
//This is an infected object. Set its life// expectancy.
sprites.get(0).setLife((int)(random.nextFloat()*infectedSpriteLife)); |
Notification Switch
Would you like to follow the 'Anatomy of a game engine' conversation and receive update notifications?