Creating Sprites using Pygame

This tutorial is the second tutorial in a serie of three Pygame tutorials:

Learning Objectives

In this second tutorial on how to create a retro arcade game using PyGame we are looking at creating our first sprite.

Consider a sprite as an object. An object can have different properties (e.g. width, height, colour, etc.) and methods (e.g. jump(), hide(), moveForward(), etc.). Like in the industry an object is built from a mould. In computing the mould is called a Class.

So by creating our first sprite we will implement OOP (Object Orientated Programming). We will create our first Class and derive our first object from this class.

Context: Car Racing Game

For this tutorial we are looking at creating a car racing game. The user will be able to control the car and move on the road between lanes by using the left and right arrow keys, accelerate or slow down using the up and down arrow keys.

The main car will be an object called playerCar. It will derive from a Class called Car.

Our first Class

So let’s look at the code for our Car Class:
To start with the first method we will need in our class is the __init__() method. It’s called a constructor. It is used when the object is first created to initalise the main properties of the object (e.g. its x and y position, dimensions, colour, etc.)

Later on we will add more properties and methods to this class. But before doing so we will look at how we can use it to create our first object: the car of the player (playerCar)

So let’s save our class as a python file called

Our first Object

Now that we have a Class we can create objects from this Class. (Remember a Class is like a mould. It enables you to create as many objects as you need using the same mould.)

Let’s go back to our file (from previous tutorial) to edit its content.

All we need to create our sprite in our main program is one line of code as follows:

Per dafult your car will be on position (0,0) (top left og the screen). You can change the x and y properties of your car as follows:

You can see how easy it would be to create another car:

However, because we are creating a fully working game we are going to do a few more things with this object.

Let’s reuse the code from the first tutorial. We have made a few amendments since to draw the backdrop of our game: A green screen with a grey straight road!

On line 3 notice how we are using the import command to link to our Car Class python file (

On line 20 we are declaring a list called all_sprites_list that will store all the sprites we will create in our game. (For now just one sprite, the player car.)

On line 22 we are creating our first sprite/object using the Car Class. Notice how when declaring our first object we use the parameters from its constructor (__init__()), in this case, the colour, x, y, width and height of the car we want to create.

Now that we have created our first sprite we need to add it to our list of spites: all_sprites_list. This is what happens on line 25.

Finally, within the main program loop, on line 47 we are refreshing the screen and drawing all the sprites from our list: all_sprites_list.

Here is the full code:

That’s it… You are now ready to move to our third tutorial to learn how to control your sprites using the arrow keys.
PyGame Tutorial 3/3Control your sprite using the arrow keys

Share Button
Posted in Computer Science, Python - Intermediate, Python Challenges Tagged with: , ,

Our Latest Book