Session 4 : Notes du coach
Objectif de cette session
Après le checkpoint Basic, un ninja sait :
- Expliquer ce qu’est la game loop pygame et en quoi elle diffère de pgzrun.
- Faire bouger la balle et la faire rebondir sur le bord supérieur et inférieur, et sur les deux raquettes.
- Comprendre ce qu’est
pygame.Rectet comment fonctionnecolliderect.
C’est la première session avec du vrai pygame ; attends-toi à de la confusion autour de la game loop. C’est normal.
Préparation
- Le ZIP du starter prêt. Teste sur le laptop de la salle dojo si pygame est installé (pas pgzero).
- Prépare une courte explication : « pgzrun faisait la boucle pour nous. Maintenant, on la fait nous-mêmes. »
- Dojo Defender : les ninjas migrent aussi leur projet vers pygame (le starter contient la base).
Répartition du temps (3 heures)
| Temps | Activité |
|---|---|
| 0:00 à 0:15 | Retour + explication pygame vs pgzrun |
| 0:15 à 0:45 | Étape 1 à 2 : faire bouger la balle + rebonds |
| 0:45 à 1:30 | Étape 3 : compter les points |
| 1:30 à 2:00 | Étape 4 : condition de victoire + vitesse |
| 2:00 à 2:30 | Dojo Defender : migration vers pygame |
| 2:30 à 2:50 | Showcase : parties 1 contre 1 |
| 2:50 à 3:00 | Cliffhanger |
Questions fréquentes
« La balle bouge mais disparaît tout de suite »
ball_dx et ball_dy valent 0. Le ninja n’a pas changé les valeurs de départ. Montre la ligne ball_dx, ball_dy = 0, 0.
« La raquette sort de l’écran »
Ajoute des limites : if paddle.top > 0: pour monter, if paddle.bottom < HEIGHT: pour descendre.
« L’écran ne se rafraîchit pas »
pygame.display.flip() manque ou se trouve en dehors de la boucle. Vérifie l’indentation.
Indices pour Stretch et Expert
Stretch : score :
Remets la balle au centre après chaque point : ball.center = (WIDTH // 2, HEIGHT // 2). Inverse la direction de ball_dx pour que le joueur qui perd reçoive la balle.
Expert : raquette IA :
Une IA simple : if right_paddle.centery < ball.centery: right_paddle.y += 4 et inversement. Limite la vitesse pour que l’IA ne soit pas parfaite.
Dojo Defender aujourd’hui
DD Session 3 — Le starter est un portage complet de DD S2 (pgzero) vers du pygame brut. Les ninjas explorent le code, ajoutent un restart (R), et ensuite le son. Voir les notes du coach pour la répartition du temps complète.
Si un ninja veut faire le starter Pong et le starter DD : Fais-le se concentrer sur un des deux. DD est l’option la plus difficile — pour les ninjas qui comprennent vite Pong ou qui ont commencé plus tôt.
Le son dans DD : les sons se trouvent dans _shared/dojo-defender-assets/sounds/. Les ninjas peuvent les copier dans leur propre dossier sounds/. Ou télécharge la solution.
Script du cliffhanger
« La prochaine fois, la balle casse des briques, et tu l’entends aussi. Breakout, avec du vrai son. »