pygame

Creating a simple pygame window

The complete code

import pygame

pygame.init()

WIDTH = 300
HEIGHT = 200
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption('My Game')

WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
YELLOW = (255, 255, 255)

SCREEN.fill(RED)
pygame.display.flip()

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

pygame.quit()

Importing and initialising pygame

As we do with any module in python we need to import pygame:

import pygame

We then initialise all the imported pygame modules:

pygame.init()

This is used to initialise all of the pygame modules. Without this the modules would not work

Defining Constants

We then define some constants here:

WIDTH = 300
HEIGHT = 200
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))

The WIDTH and HEIGHT constants are used to create a window, which would have a width of 300 pixels and a height of 200 pixels. The function used in SCREEN, pygame.display.set_mode((WIDTH, HEIGHT)), will set the mode of the display and return a Surface object. Note how the parameters for this function are the WIDTH and HEIGHT constants defined earlier.

Setting the name of the window

We then use this function to change the name of the window to My Game:

pygame.display.set_caption('My Game')

Defining colours

Afterwards we define 6 colours that can be used in our window:

WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
YELLOW = (255, 255, 255)

When defining colours we put in 3 values that range between 0 and 255. The pygame.Color class normally goes by this format:

COLOUR = (r, g, b, a)

Where the r parameter sets the red value of the colour, the g parameter sets the green value of the colour and the b parameter sets the blue value of the colour. The a parameter sets the alpha value of the colour.

We then give this command:

SCREEN.fill(RED)

This is a pygame.Surface.fill function which fills the Surface object, our screen, with the colour red.

Using pygame.display.flip()

We then use this function

pygame.display.flip()

This basically makes everything we have drawn on the screen Surface become visible and updates the contents of the entire display. Without this line, the user wouldn’t see anything on their pygame screen.

The game loop

The next few lines are what’s called a “game loop”.

To start this off we make a variable and make it True:

is_running = True

So that we can start off our while loop:

while is_running:

which will be running throughout the whole game.

In it’s most basic form, pygame has “events” which takes user input, for example a button press or mouse click. Pygame handles these events through an event queue. We can get these events from the event queue with this for loop:

for event in pygame.event.get(): 

Which basically goes through a list of events, our event queue. These are the next 2 lines:

if event.type == pygame.QUIT:
    is_running = False    

This will make it so that when the user presses the exit button in the top corner, the event with the type pygame.QUIT occurs.

This then ends the while loop, as is_running is now False and the script moves on to the final line:

pygame.quit()

Which uninitialises the pygame modules.


This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow