Last modified: Jan 07, 2025 By Alexander Williams

Python Pygame Draw Rect Guide

Pygame is a popular library for creating games in Python. One of its key features is the ability to draw shapes, such as rectangles. This guide will teach you how to use the pygame.draw.rect function effectively.

What is pygame.draw.rect?

The pygame.draw.rect function is used to draw rectangles on a Pygame surface. It takes four main arguments: the surface, color, rectangle object, and optional width.

Basic Syntax

The basic syntax for pygame.draw.rect is as follows:


    pygame.draw.rect(surface, color, rect, width=0)
    

surface: The surface where the rectangle will be drawn. color: The color of the rectangle. rect: A rectangle object defining the position and size. width: The thickness of the rectangle border.

Example: Drawing a Rectangle

Here’s a simple example to draw a rectangle on a Pygame window:


    import pygame

    pygame.init()
    screen = pygame.display.set_mode((400, 300))
    pygame.display.set_caption("Draw Rectangle Example")

    # Define rectangle properties
    rect_color = (255, 0, 0)  # Red
    rect_position = [100, 100, 200, 150]  # [x, y, width, height]

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

        screen.fill((0, 0, 0))  # Clear screen with black
        pygame.draw.rect(screen, rect_color, rect_position)
        pygame.display.flip()  # Update the display

    pygame.quit()
    

This code creates a red rectangle on a black background. The rectangle is positioned at (100, 100) with a width of 200 and a height of 150.

Customizing the Rectangle

You can customize the rectangle by adjusting its properties. For example, you can change the border width:


    pygame.draw.rect(screen, rect_color, rect_position, 5)  # Border width of 5
    

This will draw a rectangle with a thicker border. If the width is set to 0, the rectangle will be filled.

Using pygame.Rect

Instead of using a list for the rectangle position, you can use the pygame.Rect class. This provides more functionality:


    rect = pygame.Rect(100, 100, 200, 150)
    pygame.draw.rect(screen, rect_color, rect)
    

The pygame.Rect class is useful for collision detection and other advanced features. Learn more about it in our Python Pygame Surface Get Rect Guide.

Handling Events

To make your application interactive, you need to handle events. For example, you can move the rectangle based on user input. Check out our Python Pygame Event Get Guide for more details.

Updating the Display

After drawing the rectangle, you need to update the display. Use pygame.display.flip() or pygame.display.update(). Learn more in our Python Pygame Display Flip Guide.

Conclusion

Drawing rectangles in Pygame is simple and powerful. With the pygame.draw.rect function, you can create shapes for your games or applications. Experiment with colors, positions, and borders to achieve the desired effect.