Pygame - Creating Sprites

Last Updated : 15 Jan, 2026

Sprites are game objects representing characters, obstacles, or visual elements, with properties like height, width, color, position and methods to move, jump, or interact. This article shows how to create, position and display sprites in Pygame.

Prerequisites

Before running this project, make sure the required tools are available on your system.

  • Python
  • Pygame

If Pygame is not installed, install it using the following command:

pip install pygame

Step by Step Implementation

Step 1: Import Libraries and Define Global Variables

We start by importing pygame and defining global variables for screen size and colors.

Python
import pygame
import random

COLOR = (255, 100, 98)        
SURFACE_COLOR = (167, 255, 100) 
WIDTH = 500
HEIGHT = 500

Step 2: Create a Sprite Class

A sprite class defines properties like color, dimensions and position. The __init__() method initializes the sprite.

Python
class Sprite(pygame.sprite.Sprite):
    def __init__(self, color, height, width):
        super().__init__()

        self.image = pygame.Surface([width, height])
        self.image.fill(SURFACE_COLOR)
        self.image.set_colorkey(COLOR)

        pygame.draw.rect(self.image, color, pygame.Rect(0, 0, width, height))

        self.rect = self.image.get_rect()

Explanation

  • pygame.sprite.Sprite is the base class for all sprites in Pygame.
  • self.image: defines the visual representation.
  • self.rect: stores position and dimensions.
  • set_colorkey: makes the background transparent.

Step 3: Initialize Pygame and Create the Screen

Python
pygame.init()

RED = (255, 0, 0)  
size = (WIDTH, HEIGHT)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Creating Sprite")

Step 4: Create a Sprite Object

We can now create objects from the Sprite class. Multiple objects can be created using the same class.

Python
all_sprites_list = pygame.sprite.Group()

object_ = Sprite(RED, 20, 30)
object_.rect.x = 200  
object_.rect.y = 300  

all_sprites_list.add(object_)

Explanation:

  • pygame.sprite.Group(): manages multiple sprites.
  • rect.x and rect.y set the position of the sprite.
  • Sprites added to all_sprites_list can be drawn and updated easily.

Step 5: Display the Sprite on the Screen

We use a game loop to display the sprite and update the screen.

Python
exit_game = True
clock = pygame.time.Clock()

while exit_game:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit_game = False

    all_sprites_list.update()  
    screen.fill(SURFACE_COLOR)  
    all_sprites_list.draw(screen) 
    pygame.display.flip()       
    clock.tick(60)              

pygame.quit()

Explanation:

  • pygame.event.get(): handles user input.
  • screen.fill(): fills the background color.
  • all_sprites_list.draw(screen): draws the sprites on the screen.
  • clock.tick(60): limits the frame rate to 60 FPS.

Output

The output shows a red sprite displayed on the Pygame window, confirming that the sprite was created and rendered successfully.

SpriteOutput
Output
Comment