1-07. Programmation modulaire
Nous voici arrivés à la fin du programme ! 😎. Ce « chapitre » va être traité sous forme de projet. Vous allez créer un petit jeu de votre choix à l’aide du module pygame.
L’objectif ici est de vous donnez un aperçu de comment travaille un développeur professionnel :
- Vous n’allez pas réinventer la roue : d’autres développeurs ont passé un temps considérable à préparer des outils prêts à l’emploi. Ces outils sont appelés des bibliothèques ou des frameworks
- Vous ne savez pas tout, mais vous avez à votre disposition de la documentation sur internet et l’IA (à utiliser intelligemment et avec modération – rappelez-vous, l’IA n’est pas votre amie !)
La seule contrainte que je vous impose est d’utiliser la bibliothèque Pygame.
Qu’est-ce qu'une bibliothèque ?
- Utiliser des API ou des bibliothèques.
- Exploiter leur documentation.
- Créer des modules simples et les documenter.
Une bibliothèque en programmation est un ensemble de fonctions, classes et modules préétablis qui permettent d'étendre les fonctionnalités d'un langage sans avoir à tout réécrire soi-même. C'est une boîte à outils spécialisée que l'on peut utiliser pour réaliser certaines tâches complexes plus facilement.
Les bibliothèques présentent plusieurs avantages majeurs:
- Gain de temps : pas besoin de réécrire des fonctionnalités existantes
- Code testé et optimisé : les bibliothèques populaires sont généralement bien testées et efficaces
- Abstraction : elles permettent d'utiliser des fonctionnalités complexes sans comprendre tous les détails d'implémentation
- Standardisation : elles fournissent des façons communes d'aborder certains problèmes
Vous connaissez déjà certainement des bilbiotèques comme Numpy ou Mathplotlib.
En Python, on utilise l'instruction import pour intégrer une bibliothèque dans son code. Attention, il est souvent nécessaire d’utiliser cette commande en temps qu’administrateur.
La bibliothèque Pygame
Qu'est-ce que Pygame?
Pygame est une bibliothèque Python spécialisée dans la création de jeux vidéo 2D. C'est une surcouche de la bibliothèque SDL (Simple DirectMedia Layer) qui rend accessible en Python des fonctionnalités comme :
- L'affichage graphique
- La gestion des événements (clavier, souris)
- Le chargement et l'affichage d'images
- La lecture de sons et de musiques
- La gestion des collisions
- L'animation de sprites
Fonctionnalités principales
- Système de fenêtres et surfaces
- Création d'une fenêtre d'affichage
- Manipulation de surfaces (images)
- Système de coordonnées (x,y) pour positionner les éléments
- Gestion des événements
- Détection des entrées clavier et souris
- Boucle d'événements pour réagir aux actions du joueur
- Manipulation d'images
- Chargement d'images depuis des fichiers
- Redimensionnement, rotation, transformation
- Animation par succession d'images (sprites)
- Son et musique
- Lecture de fichiers audio
- Contrôle du volume, pause, reprise
- Gestion des collisions
- Détection quand deux éléments se touchent
- Gestion des rectangles de collision
Structure typique d’un programme Pygame
# Importation de la bibliothèque
import pygame
# Initialisation
pygame.init()
# Création de la fenêtre
ecran = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Mon jeu")
# Variables du jeu
continuer = True
horloge = pygame.time.Clock()
# Boucle principale du jeu
while continuer:
# Limitation de vitesse
horloge.tick(60) # 60 images par seconde
# Gestion des événements
for evenement in pygame.event.get():
if evenement.type == pygame.QUIT:
continuer = False
# Mise à jour des éléments du jeu
# ...
# Affichage
ecran.fill((0, 0, 0)) # Fond noir
# Dessiner les éléments du jeu
# ...
# Mise à jour de l'écran
pygame.display.flip()
# Fermeture du jeu
pygame.quit()
Ressources
- Site officiel : pygame.org
- Documentation officielle : pygame.org/docs/
- Tutoriels pour débutants, en français : wikibooks.org/wiki/Pygame
- Exemples de jeux simples : pygame.org/tags/example
C’est parti ! Amusez-vous bien ! 🤓