<< Chapter < Page Chapter >> Page >
Figure 2 . Graphic output from the earlier program.
Missing image.

Adding many more sprites would have been difficult

While it would have been possible to add more sprites to the animation by expanding the code used in that program, the code would havequickly gotten out of hand without the use of a sprite class and sprite objects. (To use the common jargon, that program architecture was not very scalable.)

Encapsulate complexity in a class

Basically, this program solves that problem by encapsulating many of the properties and methods that are useful for manipulating sprites into a classfrom which sprite objects can be instantiated. Most of the complexity is encapsulated in the class and thereby removed from the program that uses objectsof the class.

The scenario

This program shows a baseball coach ( Figure 1 ) being attacked by a swarm of vicious ladybug sprites. (Don't worry, we will find a way to save the coach in the next module.)

This program uses the class named Sprite01 to populate the game window with 1000 ladybug sprites in differentcolors with different sizes that fly around the game window in different directions with different speeds as shown in Figure 1 .

Discussion and sample code

The class named Sprite01

A complete listing of this class is provided in Listing 11 . I will not explain the entire class in detail in this module. Instead, I will provide an overview of the class and then explain various parts of theclass as I use them in this and the next two modules.

Beginning of the class named Sprite01

The beginning of the class named Sprite01 down through the constructor is shown in Listing 1 .

Listing 1 . Beginning of the class named Sprite01.
public class Sprite01{ Image image = null;//The sprite wears this imagefloat X = 0f;//X-Position of the sprite float Y = 0f;//Y-Position of the spritefloat width = 0f;//Width of the sprite float height = 0f;//Height of the spritefloat xStep = 1f;//Incremental step size in pixels - X float yStep = 1f;//Incremental step size in pixels - Yfloat scale = 1f;//Scale factor for draw method Color colorFilter = null;//Color filter for draw methodfloat xDirection = 1.0f;//Move to right for positivefloat yDirection = 1.0f;//Move down for positiveint life = 1;//Used to control life or death of spriteboolean exposed = false;//Used in the contagion program//Constructor public Sprite01(Image image,//Sprite wears this imagefloat X,//Initial position float Y,//Initial positionfloat xDirection,//Initial direction float yDirection,//Initial directionfloat xStep,//Initial step size float yStep,//Initial step sizefloat scale,//Scale factor for drawing Color colorFilter) throws SlickException {//Save incoming parameter values this.image = image;this.X = X; this.Y = Y;this.xDirection = xDirection; this.yDirection = yDirection;this.xStep = xStep; this.yStep = yStep;this.scale = scale; this.colorFilter = colorFilter;//Compute and save width and height of imagewidth = image.getWidth(); height = image.getHeight();}//end constructor

Questions & Answers

use the y -intercept and slope to sketch the graph of the equation y=6x
Only Reply
how do we prove the quadratic formular
Seidu Reply
hello, if you have a question about Algebra 2. I may be able to help. I am an Algebra 2 Teacher
Shirley Reply
thank you help me with how to prove the quadratic equation
may God blessed u for that. Please I want u to help me in sets.
what is math number
Tric Reply
x-2y+3z=-3 2x-y+z=7 -x+3y-z=6
Sidiki Reply
Need help solving this problem (2/7)^-2
Simone Reply
what is the coefficient of -4×
Mehri Reply
the operation * is x * y =x + y/ 1+(x × y) show if the operation is commutative if x × y is not equal to -1
Alfred Reply
An investment account was opened with an initial deposit of $9,600 and earns 7.4% interest, compounded continuously. How much will the account be worth after 15 years?
Kala Reply
lim x to infinity e^1-e^-1/log(1+x)
given eccentricity and a point find the equiation
Moses Reply
12, 17, 22.... 25th term
Alexandra Reply
12, 17, 22.... 25th term
College algebra is really hard?
Shirleen Reply
Absolutely, for me. My problems with math started in First grade...involving a nun Sister Anastasia, bad vision, talking & getting expelled from Catholic school. When it comes to math I just can't focus and all I can hear is our family silverware banging and clanging on the pink Formica table.
I'm 13 and I understand it great
I am 1 year old but I can do it! 1+1=2 proof very hard for me though.
Not really they are just easy concepts which can be understood if you have great basics. I am 14 I understood them easily.
hi vedant can u help me with some assignments
find the 15th term of the geometric sequince whose first is 18 and last term of 387
Jerwin Reply
I know this work
The given of f(x=x-2. then what is the value of this f(3) 5f(x+1)
virgelyn Reply
hmm well what is the answer
If f(x) = x-2 then, f(3) when 5f(x+1) 5((3-2)+1) 5(1+1) 5(2) 10
A soccer field is a rectangle 130 meters wide and 110 meters long. The coach asks players to run from one corner to the other corner diagonally across. What is that distance, to the nearest tenths place.
Kimberly Reply
Jeannette has $5 and $10 bills in her wallet. The number of fives is three more than six times the number of tens. Let t represent the number of tens. Write an expression for the number of fives.
August Reply
What is the expressiin for seven less than four times the number of nickels
Leonardo Reply
How do i figure this problem out.
how do you translate this in Algebraic Expressions
linda Reply
why surface tension is zero at critical temperature
I think if critical temperature denote high temperature then a liquid stats boils that time the water stats to evaporate so some moles of h2o to up and due to high temp the bonding break they have low density so it can be a reason
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
Berger describes sociologists as concerned with
Mueller Reply
Got questions? Join the online conversation and get instant answers!
Jobilize.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?