<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Session 3 : Space Blaster :: CoderDojo Python &amp; Pygame</title><link>https://python.coderdojohasselt.be/fr/sessions/python/03-space-blaster/index.html</link><description>Les ennemis sont en formation en haut de l’écran. Toi, tu es en bas avec un vaisseau et un seul objectif : les éliminer tous avant qu’ils atteignent le fond. Appuie sur ESPACE pour tirer, et ne rate pas.
Ce que tu vas apprendre aujourd’hui Garder les projectiles dans une liste Créer un projectile quand tu appuies sur ESPACE La collision entre les projectiles et les ennemis Game over quand un ennemi atteint le fond Étape 0 : Installation Ouvre Thonny. Télécharge le starter via ce lien, décompresse le ZIP et ouvre main.py. Clique sur Run. Tu vois le vaisseau en bas et 12 ennemis dans une grille, mais rien ne bouge et tu ne sais pas encore tirer. Étape 1 : Fais bouger le vaisseau Le vaisseau bouge déjà avec les flèches. Vérifie le code dans update(). Fais en sorte que le vaisseau ne sorte pas de l’écran :</description><generator>Hugo</generator><language>fr-BE</language><atom:link href="https://python.coderdojohasselt.be/fr/sessions/python/03-space-blaster/index.xml" rel="self" type="application/rss+xml"/><item><title>Session 3 : Notes du coach</title><link>https://python.coderdojohasselt.be/fr/sessions/python/03-space-blaster/mentor-notes/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/fr/sessions/python/03-space-blaster/mentor-notes/index.html</guid><description>Objectif de cette session Après le checkpoint Basic, un ninja sait :
Créer un projectile quand ESPACE est pressée et le ranger dans une liste. Faire monter les projectiles et les supprimer quand ils sortent de l’écran. Comprendre pourquoi on utilise bullets[:] et pas bullets quand on supprime dans une boucle. Préparation Le ZIP du starter prêt sur USB et sur le site. Lancer toi-même la solution une fois pour connaître le timing des étapes. Dojo Defender : les ninjas ajoutent aujourd’hui un système de tir à leur projet. Répartition du temps (3 heures) Temps Activité 0:00 à 0:10 Retour sur la session 2 + intro 0:10 à 0:20 Étape 1 : faire bouger le vaisseau (révision) 0:20 à 1:00 Étape 2 : tirer + faire bouger les projectiles 1:00 à 1:45 Étape 3 : collision avec les ennemis 1:45 à 2:15 Étape 4 : faire bouger les ennemis + game over 2:15 à 2:45 Dojo Defender : ajouter le système de tir 2:45 à 3:00 Showcase + cliffhanger Questions fréquentes « bullets donne une RuntimeError pendant la suppression » Le ninja parcourt la liste d’origine pendant qu’il supprime. Fais-lui utiliser bullets[:] (une copie).</description></item><item><title>Session 3 : Cheatsheet</title><link>https://python.coderdojohasselt.be/fr/sessions/python/03-space-blaster/cheatsheet/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/fr/sessions/python/03-space-blaster/cheatsheet/index.html</guid><description>Créer un projectile avec ESPACE def on_key_down(key): if key == keys.SPACE: kogel = Actor('bullet') kogel.x = ship.x kogel.y = ship.y - 20 bullets.append(kogel) Faire bouger les projectiles et les supprimer for kogel in bullets[:]: kogel.y -= 8 if kogel.y &lt; -10: bullets.remove(kogel) Collision projectile ↔ ennemi for kogel in bullets[:]: for vijand in enemies[:]: if kogel.colliderect(vijand): bullets.remove(kogel) enemies.remove(vijand) score += 10 break Cooldown de tir cooldown = 0 def update(): global cooldown if cooldown > 0: cooldown -= 1 def on_key_down(key): global cooldown if key == keys.SPACE and cooldown == 0: shoot() cooldown = 15 Timer : faire descendre les ennemis timer = 0 def update(): global timer timer += 1 if timer % 90 == 0: for vijand in enemies: vijand.y += 20 Texte de victoire / game over if not enemies: screen.draw.text("TU GAGNES !", center=(WIDTH/2, HEIGHT/2), color="yellow", fontsize=60)</description></item><item><title>Session 3 : Enregistrement de la démo</title><link>https://python.coderdojohasselt.be/fr/sessions/python/03-space-blaster/demo/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/fr/sessions/python/03-space-blaster/demo/index.html</guid><description>Lance la solution : cd code/sessions/03-space-blaster/solution &amp;&amp; uv run pgzrun main.py.
Enregistre ~10 secondes : abats quelques ennemis et fais monter le score. Enregistre le fichier sous space-blaster.gif dans static/sessions/03-space-blaster/. Taille visée : ~600×500 pixels, ≤ 2 MB.</description></item></channel></rss>