Dojo Defender Session 1 : Notes du coach
Objectif de cette session
Après cette session, un ninja sait :
- Créer et gérer une liste d’astéroïdes avec
Actor - Faire apparaître des astéroïdes avec un timer et les supprimer quand ils sortent de l’écran
- Détecter des collisions avec
colliderect - Tenir les vies à jour et forcer le game over
- Afficher une animation d’explosion simple
Préparation (30 min avant la session)
- Les ZIP du starter prêts sur USB et sur le site :
dojo-defender-s2-starter.fr.zipetdojo-defender-s2-solution.fr.zip. - Lancer le starter une fois sur le portable de la salle dojo.
- Expliquer que Dojo Defender revient à chaque session — encourage-les à bien garder le code.
Répartition du temps (3 heures)
Cette session fait partie intégrante de la session 2 normale (Dodge Meteors). Utilise le temps comme ceci :
| Temps | Activité |
|---|---|
| 0:00 à 1:00 | Session 2 : Dodge Meteors (étapes 1-4) |
| 1:00 à 1:15 | Intro Dojo Defender + télécharger le starter |
| 1:15 à 1:45 | Étapes 1-2 : faire apparaître + bouger les astéroïdes |
| 1:45 à 2:15 | Étape 3 : collision + vies |
| 2:15 à 2:45 | Étape 4 : explosions + invincibilité |
| 2:45 à 3:00 | Showcase + cliffhanger |
Questions fréquentes
« Mes astéroïdes ne sont pas dessinés »
La boucle for des astéroïdes n’est probablement pas dans draw(), ou elle se trouve après un return.
« global donne une erreur »
global timer doit être en haut de la fonction, avant la première fois que timer est utilisé.
« Le vaisseau est invisible après une collision »
Vérifie que ship.visible = True est bien mis quand l’explosion est finie. Le reset doit arriver après la frame 4 de l’explosion.
« L’explosion ne s’affiche pas »
N’oublie pas d’appeler explosion.draw() dans draw(), et de mettre explosion_active à True lors d’une collision.
Indices pour Stretch et Expert
Stretch : collision
Explique que colliderect vérifie si deux rectangles (hitboxes) se chevauchent. C’est la méthode standard en pgzero.
Expert : explosion
Le mécanisme d’explosion est une animation de frames à la main : tu changes l’image de l’Actor toutes les 5 frames. C’est une technique simple mais efficace.
Expert : invincibilité L’invincibilité évite d’être à nouveau touché juste après une explosion. Utilise un compteur qui descend à chaque frame.
Script du cliffhanger
« Aujourd’hui, tu as évité des astéroïdes et tu as vu ton vaisseau exploser. La prochaine fois : ton vaisseau RÉPLIQUE. Des ennemis en formation, et toi tu as des lasers. Prêt à attaquer ? »