<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Session 8 : Sky Highway :: CoderDojo Python &amp; Pygame</title><link>https://python.coderdojohasselt.be/fr/sessions/python/08-sky-highway/index.html</link><description>Ton vaisseau vole dans une route aérienne sans fin. L’arrière-plan défile derrière toi, des obstacles rouges arrivent par la droite, et des étoiles rapportent des points. Plus tu survis longtemps, plus ça va vite !
Ce que tu vas apprendre aujourd’hui Faire un arrière-plan qui défile avec une variable scroll_x Faire apparaître des objets qui vont de droite à gauche La détection de collision avec des vies L’augmentation de la difficulté : accélérer à mesure que le score monte Étape 0 : Installation Ouvre Thonny. Télécharge le starter via ce lien, décompresse le ZIP et ouvre main.py dans Thonny. Clique sur Run. Tu vois un écran statique avec un vaisseau et un fond de ciel, mais rien ne bouge encore. Des problèmes ? Demande à un coach. Étape 1 : Faire défiler l’arrière-plan Un arrière-plan qui défile donne l’illusion du mouvement. On dessine l’arrière-plan deux fois côte à côte et on décale la position à chaque frame.</description><generator>Hugo</generator><language>fr-BE</language><atom:link href="https://python.coderdojohasselt.be/fr/sessions/python/08-sky-highway/index.xml" rel="self" type="application/rss+xml"/><item><title>Session 8 : Notes du coach</title><link>https://python.coderdojohasselt.be/fr/sessions/python/08-sky-highway/mentor-notes/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/fr/sessions/python/08-sky-highway/mentor-notes/index.html</guid><description>Objectif de cette session À la fin du checkpoint Basic, un ninja sait :
Faire défiler l’arrière-plan sans couture avec la technique du double blit. Déplacer des obstacles de droite à gauche et les supprimer quand ils sortent de l’écran. Enlever une vie lors d’une collision et arrêter le jeu à 0 vie. Ce qui n’est pas attendu après la session 8 : les étoiles, l’augmentation de la difficulté, l’écran de game over. Ça, c’est du matériel Stretch/Expert.</description></item><item><title>Session 8 : Cheatsheet</title><link>https://python.coderdojohasselt.be/fr/sessions/python/08-sky-highway/cheatsheet/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/fr/sessions/python/08-sky-highway/cheatsheet/index.html</guid><description>Arrière-plan qui défile scroll_x = 0 speed = 4 # À chaque frame : scroll_x -= speed if scroll_x &lt;= -WIDTH: scroll_x = 0 screen.blit(bg_image, (int(scroll_x), 0)) screen.blit(bg_image, (int(scroll_x) + WIDTH, 0)) Faire apparaître des objets par la droite # Créer un obstacle (à droite, hors de l'écran) : obs = pygame.Rect(WIDTH, random.randint(50, HEIGHT - 100), 30, 80) obstacles.append(obs) # Le déplacer vers la gauche à chaque frame : for obs in obstacles[:]: obs.x -= speed if obs.x &lt; -obs.width: obstacles.remove(obs) Timer de spawn avec USEREVENT SPAWN_EVENT = pygame.USEREVENT + 1 pygame.time.set_timer(SPAWN_EVENT, 1500) # toutes les 1,5 secondes for event in pygame.event.get(): if event.type == SPAWN_EVENT: obstacles.append(pygame.Rect(WIDTH, ...)) Dessiner les vies for i in range(lives): pygame.draw.rect(screen, RED, (10 + i * 25, 10, 18, 18)) Faire augmenter la vitesse BASE_SPEED = 4 speed = BASE_SPEED + score * 0.1 # Adapter l'intervalle de spawn : interval = max(500, 1800 - score * 30) pygame.time.set_timer(SPAWN_EVENT, interval) Collision avec perte de vie if ship_rect.colliderect(obs): obstacles.remove(obs) lives -= 1 if lives &lt;= 0: running = False Écran de game over # Après la boucle while : screen.fill(BLACK) go = font.render("GAME OVER", True, RED) screen.blit(go, (WIDTH // 2 - go.get_width() // 2, HEIGHT // 2)) pygame.display.flip() pygame.time.wait(3000)</description></item><item><title>Session 8 : Enregistrement de la démo</title><link>https://python.coderdojohasselt.be/fr/sessions/python/08-sky-highway/demo/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/fr/sessions/python/08-sky-highway/demo/index.html</guid><description>La session 8 utilise du pygame pur. Montre un GIF de la solution sur la page de la session.
Comment enregistrer Lance la solution : cd code/sessions/08-sky-highway/solution &amp;&amp; python main.py. Utilise un enregistreur d’écran : Linux : Peek ou SimpleScreenRecorder. Windows : ScreenToGif. macOS : QuickTime → exporte en GIF via ffmpeg ou Kap. Enregistre ~15 secondes : montre le défilement, l’esquive des obstacles, un ramassage d’étoile et l’écran de game over. Enregistre le fichier sous sky-highway.gif dans static/sessions/08-sky-highway/. Fais-y référence dans la fiche de travail via : ![Demo](/sessions/08-sky-highway/sky-highway.gif). Taille visée : ~800×500 pixels, ≤ 2 MB.</description></item></channel></rss>