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


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:

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


This section contains a variety of miscellaneous information.

Questions & Answers

a perfect square v²+2v+_
Dearan Reply
kkk nice
Abdirahman Reply
algebra 2 Inequalities:If equation 2 = 0 it is an open set?
Kim Reply
or infinite solutions?
Embra Reply
if |A| not equal to 0 and order of A is n prove that adj (adj A = |A|
Nancy Reply
rolling four fair dice and getting an even number an all four dice
ramon Reply
Kristine 2*2*2=8
Bridget Reply
Differences Between Laspeyres and Paasche Indices
Emedobi Reply
No. 7x -4y is simplified from 4x + (3y + 3x) -7y
Mary Reply
is it 3×y ?
Joan Reply
J, combine like terms 7x-4y
Bridget Reply
im not good at math so would this help me
Rachael Reply
how did I we'll learn this
Noor Reply
f(x)= 2|x+5| find f(-6)
Prince Reply
f(n)= 2n + 1
Samantha Reply
Need to simplify the expresin. 3/7 (x+y)-1/7 (x-1)=
Crystal Reply
. After 3 months on a diet, Lisa had lost 12% of her original weight. She lost 21 pounds. What was Lisa's original weight?
Chris Reply
preparation of nanomaterial
Victor Reply
Yes, Nanotechnology has a very fast field of applications and their is always something new to do with it...
Himanshu Reply
can nanotechnology change the direction of the face of the world
Prasenjit Reply
At high concentrations (>0.01 M), the relation between absorptivity coefficient and absorbance is no longer linear. This is due to the electrostatic interactions between the quantum dots in close proximity. If the concentration of the solution is high, another effect that is seen is the scattering of light from the large number of quantum dots. This assumption only works at low concentrations of the analyte. Presence of stray light.
Ali Reply
the Beer law works very well for dilute solutions but fails for very high concentrations. why?
bamidele Reply
how did you get the value of 2000N.What calculations are needed to arrive at it
Smarajit Reply
Got questions? Join the online conversation and get instant answers!
QuizOver.com Reply

Get the best Algebra and trigonometry course in your pocket!

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?