Session 5 : Notes du coach
Objectif de cette session
Après le checkpoint Basic, un ninja sait :
- Faire bouger la balle à la verticale et la faire rebondir sur les quatre bords et sur la raquette.
- Jouer un son lors d’une collision.
- Diminuer les vies quand la balle atteint le bas.
Préparation
- Le ZIP du starter prêt. Il contient
sounds/hit.wavetsounds/explosion.wav. - Teste si
pygame.mixerfonctionne sur le laptop de la salle dojo (parfois le pilote audio manque). - Dojo Defender : les ninjas ajoutent aujourd’hui des effets sonores à leur projet.
Répartition du temps (3 heures)
| Temps | Activité |
|---|---|
| 0:00 à 0:10 | Retour + intro son |
| 0:10 à 0:30 | Étape 1 à 2 : faire bouger la balle + rebonds |
| 0:30 à 1:15 | Étape 3 : casser des briques |
| 1:15 à 1:50 | Étape 4 : vies, son, victoire/game over |
| 1:50 à 2:20 | Dojo Defender : ajouter le son |
| 2:20 à 2:50 | Buffer / stretch / expert |
| 2:50 à 3:00 | Showcase + cliffhanger |
Questions fréquentes
« Aucun son » Deux causes :
pygame.mixer.init()n’est pas tout en haut. Vérifie l’ordre dans le code.- Le script est lancé depuis un autre dossier. Python cherche alors
sounds/hit.wavdans le dossier où tu te trouves, pas à côté demain.py. Le starter utilise_DIR = os.path.dirname(os.path.abspath(__file__))pour régler ça. Montre-le au ninja. Sur certains laptops, le pilote audio manque ; letry/exceptévite que le script plante dans ce cas.
« La balle traverse les briques »
Le break après la suppression d’une brique manque ; sans break, Python vérifie plusieurs briques dans la même frame et ball_dy peut s’inverser deux fois.
« La balle accélère sans contrôle »
ball_dy = -ball_dy est appelé plusieurs fois par frame (raquette ET bas en même temps). Ajoute un cooldown ou une vérification de position.
Indices pour Stretch et Expert
Stretch : casser des briques :
Le break est essentiel. Explique : si tu l’oublies, la boucle vérifie toutes les briques et inverse ball_dy plusieurs fois dans la même frame.
Expert : vitesse : Utilise un facteur basé sur le nombre de briques restantes, pas une augmentation fixe par collision. L’accélération reste ainsi prévisible.
Script du cliffhanger
« La prochaine fois : la gravité. Ton personnage tombe vers le bas, sauf si tu le fais sauter à temps. Des plateformes, des étoiles et un saut avec du son. »
Dojo Defender aujourd’hui
En plus de Breakout, les ninjas travaillent aujourd’hui sur Dojo Defender Session 4 : menu + trois types d’ennemis.
Objectifs :
- Implémenter une state machine (MENU, PLAYING, GAME_OVER)
- Écrire une fonction reset
- Trois types d’ennemis : drone, zigzag, charger
- Système de vagues avec difficulté croissante
Répartition du temps : voir le tableau ci-dessus — 1:50 à 2:20 est pour Dojo Defender.
Préparation :
- Préparer
dojo-defender-s5-starter.zipetdojo-defender-s5-solution.zip - Vérifie que
enemy_zigzag.pngetenemy_charger.pngsont bien dans le starter - Fiche de travail : Dojo Defender Session 4