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: