Pygame est une bibliothèque libre multiplate-forme distribuée sous licence LGPL permettant de développer, entre autres, des jeux en langage de programmation python.
Cette bibliothèque est construite sur la bibliothèque SDL, prend en charge la gestion du son, des graphismes, des événements utilisateurs ainsi que des événements temporels.
Vous pouvez trouver toutes les informations nécessaires sur le site officiel de Pygame et un ensemble de tutos sur le site d'OpenClassrooms. Il existe certains ouvrages dédiés à Pygame parmi lesquels le livre "Beginning Game development with Python and Pygame" de Will Mc Gugan publié chez Apress.
Téléchargement et installation
Le plus simple reste encore l'utilisation de pip, inclus par défaut avec l'installateur de Python depuis la version 3.4 : il s'agit d'un environnement virtuel permettant d’installer des paquets pour une application particulière, plutôt que de les installer sur le système entier. Il est ainsi par essence multiplate-forme et ne nécessite pas de connaissances particulières. Il fonctionne même avec des environnements utilisateurs très protégés comme les réseaux des collèges et lycées.
Pour une installation globale il faudra s'orienter vers une version 32 bits de python avec une version 32 bits de pygame sous la forme :
Pour les adeptes des versions 64 bits, il reste toujours possible de compiler pygame à partir des sources.
Importation de la bibliothèque
L'importation et l'activation de pygame dans votre programme se fait en deux étapes :
Ce qui donne :
import pygame
from pygame.locals import *
Il est à noter que la deuxième ligne est obligatoire.
Attention à ne pas créer de programme contenant le mot pygame dans leur nom, ce qui occasionne généralement un conflit avec la bibliothèque et conduit au plantage de votre programme...
Création de votre première fenêtre
Pour créer et utiliser votre première fenêtre sous Python et Pygame, il va falloir taper quelques lignes de code donnant la structure générale d'une fenêtre :
pygame.init()
fenetre = pygame.display.set_mode((800,450))
pygame.display.set_caption('Mon Titre')
Ces trois ligne permettent :
Vient ensuite la boucle infinie principale :
continuer = 1
while continuer :
Puis la section de gestion des événements avec au minimum l'événement permettant de fermer la fenêtre en cliquant sur la croix :
for event in pygame.event.get():
if event.type == QUIT:
continuer = 0
et enfin l'instruction permettant de décharger la bibliothèque (à ne pas oublier pour éviter les interférences entre des lancements successifs d'un même programme.
pygame.quit()
Intégration d'une image comme fond
La deuxième étape est d'intégrer une image en tant que fond. Pygame reconnaît une large variété de format d'images et permet leur intégration sans devoir créer de Canevas (comme sous Tkinter par exemple).
Par exemple :
fond = pygame.image.load("fond.png").convert()
fenetre.blit(fond,(0,0))
pygame.display.flip()
permet de :
Ce qui donne comme code final :
# -*- coding: utf-8 -*-
"""
Created on Thu Apr 9 16:59:15 2015
@author: eric
"""
import pygame
from pygame.locals import *
# Initialisation de la fenêtre d'affichage
pygame.init()
fenetre = pygame.display.set_mode((800,450))
pygame.display.set_caption('Mon Titre')
fond = pygame.image.load("fond.png").convert()
fenetre.blit(fond,(0,0))
pygame.display.flip()
# Initialisation des variables
continuer = 1
# Boucle principale
while continuer:
for event in pygame.event.get():
# Quitter
if event.type == QUIT:
continuer = 0
pygame.quit()