<< Chapter < Page | Chapter >> Page > |
You should have no difficulty matching up the code in Listing 5 with the verbal description given above.
Make a cleanup pass
The code in Listing 6 uses an Iterator to make the cleanup pass described above.
Listing 6 . Make a cleanup pass. |
---|
//Make a cleanup pass through the ArrayList object
Iterator<Sprite01>iterB = sprites.iterator();while(iterB.hasNext()){
Sprite01 theSprite = iterB.next();//Cause a percentage of the exposed objects to// contract the disease. Clear the others.
if((theSprite.getExposed() == true)&&(random.nextFloat()<probabilityOfInfection)){
theSprite.setImage(redBallImage);theSprite.setLife((int)(
random.nextFloat()*infectedSpriteLife));theSprite.setExposed(false);
}else{//Eliminate the effects of the exposure
theSprite.setExposed(false);}//end else//Remove dead sprites
if(theSprite.getLife()<= 0){
iterB.remove();}//end if
}//end while loop}//end outer for loop}//end update |
Once again, you should have no difficulty matching up the code in Listing 6 with the verbal description given above.
The render method is shown in Listing 7 . There is nothing new in Listing 7 .
Listing 7 . The render method. |
---|
public void render(GameContainer gc, Graphics g)
throws SlickException{//set the drawing mode to honor transparent pixels
g.setDrawMode(g.MODE_NORMAL);//Draw the background to erase the previous picture.
background.draw(0,0);//Draw every sprite in the ArrayList object.
for(int cnt = 0;cnt<sprites.size();cnt++){
sprites.get(cnt).draw();}//end for loop//Display the number of sprites remaining.
g.drawString("Sprites remaining: " + (sprites.size()),100f,10f);
}//end render}//end class Slick0220 |
I encourage you to copy the code from Listing 8 and Listing 9 . Compile the code and execute it,making changes, and observing the results of your changes. Make certain that you can explain why your changes behave as they do.
In this module, you learned how to write a program that simulates the spread of a fatal communicable disease within a population.
Although I may come back and add more modules later, for now, this will be the final module in this collection.
The objective of the collection was to explain the anatomy of a game engine. I believe I have accomplished that objective and have also providedsample programs to illustrate the use of the game engine.
It is worth pointing out that BasicGame is not the only game engine architecture available with Slick2D. The Slick2D Wiki refers to BasicGame as a game container and indicates that several others are available including:
The documentation also describes a class named StateBasedGame , which provides a different anatomy than BasicGame . Bucky Roberts provides a series of video tutorials on state based games using Slick2D at (External Link)
This section contains a variety of miscellaneous information.
Notification Switch
Would you like to follow the 'Anatomy of a game engine' conversation and receive update notifications?