<< Chapter < Page Chapter >> Page >

The class named Slick0220

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

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));

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