Pygame est une bibliothèque (un ensemble de fonctions prêtes à l’emploi – plus précisément un ensemble d’objets avec leurs méthodes) qui permet de développer des animations ou des jeux en 2D (2 dimensions).
La documentation officielle est ici. Elle est entièrement en anglais.
Des exemples de ce que l'on peut faire avec sont visibles ici :
Avant de commencer, deux choses importantes :
une animation est une suite de dessins qui défilent les uns après les autres (voir les premières animations de Mickey Mouse). Cette répétition s’appelle un loop. Dans Pygame (contrairement à Pygame Zero), il faut coder ce loop.
pour fabriquer nos animations / jeux, nous allons superposer des surfaces (ou des calques si c'est plus simple à comprendre).
Par exemple, on peut superposer ces 3 surfaces :
La première surface que nous allons créer est la fenêtre :
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
ETAPE 1 :
Premier programme avec Pygame : afficher la fenêtre graphique
Author : YF
Dernière mise à jour : sept 2022
"""
import pygame
# constantes
SCREENSIZE = (800,600) # (LARGEUR, HAUTEUR) de la fenêtre (en pixels)
LIGHTGREY = (110,110,110) # couleur GRIS CLAIR
YELLOW = (240,255,0) # couleur JAUNE
BGCOLOR = LIGHTGREY # couleur de fond
TITLE = "Tutoriel Pygame" # Titre qui s'affiche dans la fenêtre
pygame.init()
# création de la fenêtre principale
screen = pygame.display.set_mode(SCREENSIZE)
pygame.display.set_caption(TITLE)
# boucle principale
## variable qui détermine l'état de la boucle : True = la boucle est active, la fenêtre s'affiche
running = True
# tant que running est vraie
while running:
# remplir la fenêtre avec une couleur
screen.fill(BGCOLOR)
# rafraîchir la fenêtre
pygame.display.update()
pygame.quit()
Comprendre le programme :
Mayday ! Ma fenêtre ne peut pas se fermer!
Pas de panique ! Notre code est effectivement incomplet. Il faut prévoir la fermeture de la fenêtre.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
ETAPE 2 :
On reprend la version précédente qui affiche la fenêtre graphique
On ajoute la gestion des évènements du clavier pour déclencher la fermeture de la fenêtre
Author : YF
Dernière mise à jour : sept 2022
Etat : à vérifier (cohérence par rapport à la suite)
"""
import pygame
# constantes
SCREENSIZE = (800,600) # (LARGEUR, HAUTEUR) de la fenêtre (en pixels)
LIGHTGREY = (110,110,110) # couleur GRIS CLAIR
YELLOW = (240,255,0) # couleur JAUNE
BGCOLOR = LIGHTGREY # couleur de fond
TITLE = "Tutoriel Pygame" # Titre qui s'affiche dans la fenêtre
pygame.init()
# création de la fenêtre principale
screen = pygame.display.set_mode(SCREENSIZE)
pygame.display.set_caption(TITLE)
# boucle principale
## variable qui détermine l'état de la boucle : True = la boucle est active, la fenêtre s'affiche
running = True
# tant que running est vraie
while running:
# remplir la fenêtre avec une couleur
screen.fill(BGCOLOR)
# événement fermeture de la fenêtre
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# rafraîchir la fenêtre
pygame.display.update()
pygame.quit()
Comprendre le programme :
Une partie Gestion des saisies clavier a été ajoutée: