Space Shooter
Jeu 2D en Python / Pygame
Création d'un moteur de jeu 2D complet en Python.
Basé sur le tutoriel de Clear Code, enrichi avec mes propres fonctionnalités (boutique,
score, power-ups).
📚 Les Bases (Tutoriel Clear Code)
Pour apprendre la programmation orientée objet appliquée au jeu vidéo, j'ai suivi le tutoriel de la chaîne Clear Code.
Compétences acquises :
- 🎮 Game Loop : Compréhension de la boucle événementielle (Events, Update, Draw)
- 👾 Sprite Groups : Gestion efficace de centaines d'entités (lasers, ennemis) via les groupes Pygame
- 💥 Collisions : Utilisation des masques pour des collisions au pixel près
- ⏱️ Delta Time : Indépendance du framerate pour une vitesse de jeu constante
🚀 Mes Contributions (Extensions)
Une fois le moteur de base fonctionnel, j'ai voulu aller plus loin et transformer cette démo technique en un vrai jeu complet. J'ai dû concevoir mes propres systèmes sans guide.
🖥️ Menu & États
Création d'un système de gestion d'états (State Machine) pour passer fluidement du Menu Principal au Jeu, puis au Game Over ou au Shop.
⚡ Système de Power-Ups
Implémentation d'une logique de drop aléatoire avec probabilité 1/30. Le bonus "Rapid Fire" modifie temporairement la cadence de tir du joueur.
💰 Boutique & High Score
Ajout d'une économie (crédits gagnés en détruisant les ennemis) et d'un système de sauvegarde locale du meilleur score (lecture/écriture fichier JSON).
Menu Principal avec State Machine.
Gameplay intense avec système de power-ups.
Système de boutique avec économie intégrée.
💻 Extrait de Code
Exemple de la logique de drop du Power-Up Rapid Fire :
def destroy_asteroid(self, asteroid):
# Explosion FX
Explosion(self.all_sprites, asteroid.rect.center)
# 1 chance sur 30 de drop un power-up
if randint(0, 30) == 1:
PowerUp(self.all_sprites, asteroid.rect.center, 'rapid_fire')
asteroid.kill()
self.score += 100
Ce système utilise un générateur aléatoire pour créer un drop probabiliste, ajoutant de la variété et de l'excitation au gameplay.
Découvrir le projet
Code source complet sur GitHub • Tutoriel Clear Code sur YouTube