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

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

Run the program

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.

Summary

In this module, you learned how to write a program that simulates the spread of a fatal communicable disease within a population.

Conclusion

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:

  • Applet Game Container
  • ApplicationGDXContainer/AndroidGDXContainer

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)

Miscellaneous

This section contains a variety of miscellaneous information.

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