Pygame Draw Line Tutorial – Complete Guide

Welcome to this comprehensive beginner-friendly tutorial, where we will explore pygame, a much-loved module of Python, with a focus on the ‘pygame draw line’ function. Often found at the heart of indie game projects, pygame has unlimited potential for coders of all levels. Today, we will learn how to harness its capabilities and draw sweet, smooth lines to create captivating visuals.

What is pygame?

Pygame is an open-source Python module designed for game development. It comes packed with functionalities, allowing us to create interactive games and multimedia applications in Python.

What is the draw line function?

The draw line function, as the name suggests, is a built-in function within pygame that allows the user to draw a line on the pygame screen or any other surface object.

Why should I learn pygame draw line?

This function is most valuable in its ability to allow developers to paint shapes, diagrams, or design games with just a few lines of code.

The draw line function in pygame is not only useful, but also flexible and straightforward, making it an excellent tool for beginners who want to get started with game development and creating stunning visuals using code. It can also be a valuable addition to the skill set of experienced coders looking to venture into the world of game creation. With a sprinkle of creativity and a dash of code, you can create wonders with this function. Let’s dive in!

CTA Small Image

Getting Started with pygame draw line

Let’s get our hands dirty with some coding. First, we need to install Pygame. If you haven’t done so already, open up your Python environment and install Pygame using pip:

pip install pygame

Once we’ve got that sorted, we need to import Pygame and initiate it:

import pygame

Now we can start by setting up a window where we will draw our lines:

win = pygame.display.set_mode((500, 500))
pygame.display.set_caption("Draw Line Function in Pygame")

In the above piece of code, we have created a window of 500×500 pixels and named it ‘Draw Line Function in Pygame.

Draw a Single Line

Next, let’s draw a line! Here is how we do that:

pygame.draw.line(win, (255,0,0), (0,0), (500,500), 5)

This will give you a straight red line from the top-left corner (0,0) to the bottom-right corner (500,500) of our window. The last number, 5, represents the thickness of the line.

Draw Multiple Lines

Now, would you like to draw more lines? Let’s get creative:

pygame.draw.line(win, (255,0,0), (250,0), (250,500), 5)
pygame.draw.line(win, (0,255,0), (0,250), (500,250), 5)

Here, we have drawn two lines – one vertical and one horizontal – dividing our window into four equal sections. The green line runs horizontally across the middle of our window, while the red line runs vertically.

Lines of Different Thickness

The pygame draw line function also allows us to adjust the thickness of our lines:

pygame.draw.line(win, (255,0,0), (0,0), (500,500), 5)
pygame.draw.line(win, (0,255,0), (500,0), (0,500), 20)

Keep in mind that no matter how creative you want to get with your code, always remember to execute pygame.display.flip() after you’re done drawing. It is what updates the contents of the entire display.

Drawing Lines at Different Angles

It does not always have to be diagonal, horizontal, or vertical lines. The draw line function lets you draw lines at whatever angle you want. Let’s see an example:

pygame.draw.line(win, (0,0,255), (180,0), (320,500), 12)

This will give you a blue line at a certain angle on the given window.

Creating Patterns with Lines

One of the qualities that make the draw line function so powerful is its versatility. This function can be conveniently used to create beautiful patterns on the screen. Let’s create a simple pattern:

for i in range(0, 500, 20):
    pygame.draw.line(win, (255,255,255), (0, i), (i, 500))

These lines will be drawn from the coordinates (0, i) to (i, 500), which will create a lovely linear pattern.

Interactive Drawing with Lines

Now, let us take a step further. We can create interactive line drawings using the Pygame event functions along with the draw line function. Here is a simple example where a line follows the mouse cursor wherever it goes:

run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
    mouse_pos = pygame.mouse.get_pos()
    pygame.draw.line(win, (0,255,0), (250, 250), mouse_pos, 3)

We’ve made the loop run indefinitely until the user closes it, updating the screen every 100 milliseconds. Hence, this code snippet will draw a line from the center of the screen (coordinates 250,250) to wherever our mouse cursor is while the left button of the mouse is pressed.

Using and experimenting with the pygame.draw.line function can bring endless possibilities to build and beautify your games and can add really cool effects and features to your work. Happy coding with Pygame!

Adding Colors to Your Lines

Pygame allows you to draw lines in different colors. For an example, let’s draw a rainbow of lines on our window:

colors = [(255,0,0), (255,127,0), (255,255,0), (0,255,0), (0,0,255), (75,0,130), (143,0,255)]
for i, color in enumerate(colors):
    pygame.draw.line(win, color, (0, i*70), (500, i*70), 70)

This code snippet will draw lines in the colors of the rainbow on our screen. The i*70 in (0, i*70) and (500, i*70) is there to avoid overlapping lines. Pretty cool, right?

Animating Lines

Animating lines in Pygame is not hard either. If we tweak our code a bit, we can create moving lines, creating a sense of movement and dynamism:

x = 0
run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
    pygame.draw.line(win, (0,255,0), (x, 0), (x, 500), 5)
    x = (x+10)%500

This code creates a vertical line that moves left to right across the window. The line ‘wraps’ around to the left side once it hits the right border of the window, creating a looped movement.

Creating Line Art

We can go deeper and more complex with the Pygame draw line function. Below is a quick glimpse into how we can even create art with lines!

for x in range(0, 500, 20):
    for y in range(0, 500, 20):
        if (x+y)%40 == 0:
            pygame.draw.line(win, (255,255,255), (x, y), (x+20, y+20), 1)
            pygame.draw.line(win, (255,255,255), (x+20, y), (x, y+20), 1)

This small piece of code draws a pattern of ’tiles’ on the window using Lines.

Learning how to use the Pygame draw line function is fun, fascinating, and rewarding. It not only sharpens your Python skills but also opens up new horizons in game development and art creation! Don’t forget to share your Pygame game, project, or art with Zenva by tagging us on social media, and don’t hesitate to be creative and experiment with the endless possibilities this function gives you!

Where to Go Next

If you found the power and creativity inherent in programming and game development with Pygame exciting, we strongly urge you to continue your journey in this wonderful world of coding. The more you learn and practice, the more significant and impactful your projects can become.

We offer a comprehensive Python Mini-Degree that has been specially designed to take your Python skills to a new level. Packed with fascinating courses, this Mini-Degree covers coding basics, algorithms, object-oriented programming, game development, and app development. The courses are designed for beginners and include step-by-step projects that can help you build games, create AI chatbots, and much more. They are flexible and accessible 24/7, letting you dictate your learning pace.

In addition to the Mini-Degree, you can broaden your horizons with our extensive range of standalone Python courses. Each course offers you opportunities to dive deeper into specific areas of Python coding, game creation, and beyond.

Remember, the sky’s the limit when it comes to Python and game development with Pygame. So, keep exploring, keep learning, and keep creating with us at Zenva! You are well on your way to going from beginner to professional!


We’re thrilled to have you on this exciting coding journey, and we’re confident that pygame’s ‘draw line’ function has added a new and colorful string to your coding bow. There’s something uncannily satisfying about seeing lines swirl and move about on the screen, right? The skills you have learned here are foundational to game development and graphical programming. They open doors to creativity and allow you to practice your coding while having fun.

Remember, this is just the start of your journey with us at Zenva. There’s still a whole universe worth of knowledge and skills waiting for you in our ample selection of courses and tutorials. Our Python Mini-Degree is the perfect next step to take. Forge ahead, keep learning, and never allow the flame of curiosity to die out! Happy coding!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.