All games have
Sprite objects, and you may or may not realize what they are.
Sprites are the objects that you move around the screen.
You can manipulate them. The main character in your game is probably a
Sprite. I know what you might be thinking - isn't every graphical object
Sprite? No! Why? Well a Sprite is only a Sprite if you move it around. If you don't move it around it is just a
Taking another look at the image from above, let's point out what are Sprites and what are Nodes:
Sprites are important in all games. Writing a platformer, you probably have
a main character that is made by using an image of some sort. This is
Sprites are easy to create and they have configurable properties
like: position, rotation, scale, opacity, color and more.
// This is how to create a sprite auto mySprite = Sprite::create("mysprite.png"); // this is how to change the properties of the sprite mySprite->setPosition(Vec2(500, 0)); mySprite->setRotation(40); mySprite->setScale(2.0); // sets both the scale of the X and Y axis uniformly mySprite->setAnchorPoint(Vec2(0, 0));
Let's illustrate each property, consider the following screenshot from the example code for this chapter:
If we set the position using
Note that the
Sprite position has changed from its original position to the
new position that we specified.
If we now set a new rotation, using
... you can see that the
Sprite has been rotated to the new amount that was
If we now specify a new scale using
Again, we can see that the
Sprite now has changed according to our code
Node objects (since a
Sprite is a subclass of
Node) have a
value for anchor point. We haven't talked about this yet, so now is a good
time. You can think of anchor point as a way of specifying what part of the
sprite will be used as a base coordinate when setting the position of it.
Using the character from our example game, and setting the anchor point to 0, 0 using:
would result in the lower left corner of our sprite being used as the basis for any setPosition() call. Let's see a few of these in action:
Take a look at the red dot in each picture. This red dot illustrates where the anchor point is!
As you can see anchor point is very useful when positioning
can even adjust the anchor point dynamically to simulate effects in your
We really can tweak just about every aspect of the
Sprite. But, what if we
wanted to have these same types of changes occur in an automated, time
determined manner? Well, keep reading...