Pygame At A Glance

Palash Pandya
4 min readApr 3, 2024

--

Pygame is a set of Python modules designed for writing video games. It is built on top of the Simple Direct Media Layer (SDL) library, providing a simple and intuitive interface for game development. With Pygame, developers can create games, simulations, and multimedia applications in Python.

Getting Started with Pygame

  • To start using Pygame, you first need to install it. You can install Pygame using pip, Python’s package manager, by running the following command in your terminal:
pip install pygame

Once installed, you can import the Pygame modules into your Python scripts and start building games.

Key Features of Pygame

Graphics Rendering

Pygame provides a powerful graphics rendering engine that allows developers to create visually appealing games. It supports 2D graphics rendering, including shapes, images, and animations. Developers can easily draw shapes, blit images, and create animations using Pygame’s built-in functions.

Input Handling

Pygame simplifies input handling by providing an intuitive interface for keyboard, mouse, and joystick input. Developers can easily detect key presses, mouse clicks, and joystick movements using Pygame’s event handling system. This allows for responsive and interactive gameplay experiences.

Audio Support

Pygame includes support for playing and manipulating audio files, making it easy to add sound effects and music to your games. Developers can load audio files in various formats and play them back with precise control over volume, playback speed, and looping.

Cross-Platform Compatibility

One of the key advantages of Pygame is its cross-platform compatibility. Pygame games can run on multiple platforms, including Windows, macOS, and Linux, without any modifications to the code. This makes it easy to develop and distribute games that can be played on a wide range of devices.

Example 1: Simple Pygame Snippet

import pygame

pygame.init()
white = (255, 255, 255)
green = (0, 255, 0)
blue = (0, 0, 128)
X = 400
Y = 400
display_surface = pygame.display.set_mode((X, Y))
pygame.display.set_caption('Show Text')
font = pygame.font.Font('freesansbold.ttf', 32)
text = font.render('Hello friends, chai pilo !', True, green, blue)
textRect = text.get_rect()
textRect.center = (X // 2, Y // 2)
while True:
display_surface.fill(white)
display_surface.blit(text, textRect)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
pygame.display.update()

Example 2: Creating a Simple Game with Pygame

import pygame
import time
import random

snake_speed = 10
window_x = 620
window_y = 480
black = pygame.Color(0, 0, 0)
white = pygame.Color(255, 255, 255)
red = pygame.Color(255, 0, 0)
green = pygame.Color(0, 255, 0)
blue = pygame.Color(0, 0, 255)
pygame.init()
pygame.display.set_caption('Snake Game')
game_window = pygame.display.set_mode((window_x, window_y))
fps = pygame.time.Clock()
snake_position = [100, 50]

snake_body = [[100, 50],
[90, 50],
[80, 50],
[70, 50]]
fruit_position = [random.randrange(1, (window_x//10)) * 10,
random.randrange(1, (window_y//10)) * 10]
fruit_spawn = True

direction = 'RIGHT'
change_to = direction
score = 0
def show_score(choice, color, font, size):
score_font = pygame.font.SysFont(font, size)
score_surface = score_font.render('Score : ' + str(score), True, color)
score_rect = score_surface.get_rect()
game_window.blit(score_surface, score_rect)
def game_over():
my_font = pygame.font.SysFont('times new roman', 50)
game_over_surface = my_font.render(
'Your Score is : ' + str(score), True, red)

game_over_rect = game_over_surface.get_rect()
game_over_rect.midtop = (window_x/2, window_y/4)
game_window.blit(game_over_surface, game_over_rect)
pygame.display.flip()
time.sleep(2)
pygame.quit()
quit()
while True:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
change_to = 'UP'
if event.key == pygame.K_DOWN:
change_to = 'DOWN'
if event.key == pygame.K_LEFT:
change_to = 'LEFT'
if event.key == pygame.K_RIGHT:
change_to = 'RIGHT'
if change_to == 'UP' and direction != 'DOWN':
direction = 'UP'
if change_to == 'DOWN' and direction != 'UP':
direction = 'DOWN'
if change_to == 'LEFT' and direction != 'RIGHT':
direction = 'LEFT'
if change_to == 'RIGHT' and direction != 'LEFT':
direction = 'RIGHT'
if direction == 'UP':
snake_position[1] -= 10
if direction == 'DOWN':
snake_position[1] += 10
if direction == 'LEFT':
snake_position[0] -= 10
if direction == 'RIGHT':
snake_position[0] += 10
snake_body.insert(0, list(snake_position))
if snake_position[0] == fruit_position[0] and snake_position[1] == fruit_position[1]:
score += 10
fruit_spawn = False
else:
snake_body.pop()

if not fruit_spawn:
fruit_position = [random.randrange(1, (window_x//10)) * 10,
random.randrange(1, (window_y//10)) * 10]

fruit_spawn = True
game_window.fill(black)

for pos in snake_body:
pygame.draw.rect(game_window, green,
pygame.Rect(pos[0], pos[1], 10, 10))
pygame.draw.rect(game_window, white, pygame.Rect(
fruit_position[0], fruit_position[1], 10, 10))
if snake_position[0] < 0 or snake_position[0] > window_x-10:
game_over()
if snake_position[1] < 0 or snake_position[1] > window_y-10:
game_over()
for block in snake_body[1:]:
if snake_position[0] == block[0] and snake_position[1] == block[1]:
game_over()
show_score(1, white, 'times new roman', 20)
pygame.display.update()
fps.tick(snake_speed)

Output:

Conclusion

Pygame provides a powerful and flexible framework for developing games with Python. Whether you’re a beginner learning to code or an experienced developer looking to create your next masterpiece, Pygame offers the tools and resources you need to bring your ideas to life. With its intuitive API, cross-platform compatibility, and active community, Pygame is an excellent choice for game development in Python.

--

--