<< Chapter < Page Chapter >> Page >
Learn to make sprites move at a constant speed in front of an image in the face of a widely varying frame rate. Also learn about a rudimentary form of collision detection.

Table of contents


This module is one in a collection of modules designed to teach you about the anatomy of a game engine.

Although the modules in this collection will concentrate on the Java game library named Slick2D, theconcepts involved and the knowledge that you will gain is applicable to different game engines written in different programming languages as well.

The purpose of this module is teach you how to make sprites move at a constant speed in front of an image in the face of a widely varying frame rate. You will also learn about a rudimentary form of collision detection.

Viewing tip

I recommend that you open another copy of this module in a separate browser window and use the following links to easily find and view the Figuresand Listings while you are reading about them.


  • Figure 1 . Image of a ladybug.
  • Figure 2 . Background image.
  • Figure 3 . Screen shot of the program named Slick0150a.
  • Figure 4 . Screen shot of the program named Slick0150b.
  • Figure 5 . Screen shot of the program named Slick0150b without correction for varying frame rate.


  • Listing 1 . Beginning of the class named Slick0150a.
  • Listing 2 . The init method for Slick0150a.
  • Listing 3 . Beginning of the update method for Slick0150a.
  • Listing 4 . Detection of collision with right edge.
  • Listing 5 . Test for collisions on other three sides of game window.
  • Listing 6 . The render method for Slick150a.
  • Listing 7 . The render method for Slick150b.
  • Listing 8 . Beginning of the update method for Slick0150b.
  • Listing 9 . Source code for the program named Slick0150a.
  • Listing 10 . Source code for the program named Slick0150b.


What you have learned

In the previous module, you learned that while there are many classes and interfaces in the Slick2D library with names that match the names of classes andinterfaces in the standard edition Java library, they are not the same.

You learned that you can access the Slick2D documentation at (External Link) . (A copy of the documentation is also included in the distribution zip file.)

You learned how to set the drawing mode so that bitmap images drawn in the game window will either honor or not honor transparent pixels.

You learned how to draw bitmap images in the game window using both the draw methods of the Image class and the drawImage methods of the Graphics class.

What you will learn

Questions & Answers

the gradient function of a curve is 2x+4 and the curve passes through point (1,4) find the equation of the curve
Kc Reply
Ramesh Reply
test for convergence the series 1+x/2+2!/9x3
success Reply
a man walks up 200 meters along a straight road whose inclination is 30 degree.How high above the starting level is he?
Lhorren Reply
100 meters
Find that number sum and product of all the divisors of 360
jancy Reply
exponential series
what is subgroup
Purshotam Reply
Prove that: (2cos&+1)(2cos&-1)(2cos2&-1)=2cos4&+1
Macmillan Reply
e power cos hyperbolic (x+iy)
Vinay Reply
tan hyperbolic inverse (x+iy)=alpha +i bita
Payal Reply
prove that cos(π/6-a)*cos(π/3+b)-sin(π/6-a)*sin(π/3+b)=sin(a-b)
Tejas Reply
why {2kπ} union {kπ}={kπ}?
Huy Reply
why is {2kπ} union {kπ}={kπ}? when k belong to integer
if 9 sin theta + 40 cos theta = 41,prove that:41 cos theta = 41
Trilochan Reply
what is complex numbers
Ayushi Reply
give me treganamentry question
Anshuman Reply
Solve 2cos x + 3sin x = 0.5
shobana 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?