<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Session 4 : Pong :: CoderDojo Python &amp; Pygame</title><link>https://python.coderdojohasselt.be/fr/sessions/python/04-pong/index.html</link><description>Deux raquettes, une balle : le Pong classique. Mais il y a une surprise : dans cette session, tu écris le jeu en vrai pygame, sans pgzrun. Tu apprends à installer toi-même la game loop. C’est comme ça que marchent la plupart des vrais jeux.
Ce que tu vas apprendre aujourd’hui La game loop pygame : events, update, draw pygame.Rect pour les rectangles et les collisions Faire rebondir la balle (inverser la vitesse) Compter les points pour deux joueurs É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 deux raquettes et une balle jaune au milieu, mais la balle ne bouge pas encore. Différence avec pgzrun : il n’y a plus de fonctions draw() et update(). Tout est dans une seule boucle while running:.</description><generator>Hugo</generator><language>fr-BE</language><atom:link href="https://python.coderdojohasselt.be/fr/sessions/python/04-pong/index.xml" rel="self" type="application/rss+xml"/><item><title>Session 4 : Notes du coach</title><link>https://python.coderdojohasselt.be/fr/sessions/python/04-pong/mentor-notes/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/fr/sessions/python/04-pong/mentor-notes/index.html</guid><description>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.Rect et comment fonctionne colliderect. C’est la première session avec du vrai pygame ; attends-toi à de la confusion autour de la game loop. C’est normal.</description></item><item><title>Session 4 : Cheatsheet</title><link>https://python.coderdojohasselt.be/fr/sessions/python/04-pong/cheatsheet/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/fr/sessions/python/04-pong/cheatsheet/index.html</guid><description>La game loop de Pygame import pygame, sys pygame.init() screen = pygame.display.set_mode((600, 400)) clock = pygame.time.Clock() running = True while running: clock.tick(60) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit(); sys.exit() # --- update --- # --- draw --- pygame.display.flip() Rectangle (Rect) paddle = pygame.Rect(x, y, breedte, hoogte) paddle.y -= 5 # déplacer paddle.colliderect(andere_rect) # collision → True/False Le clavier en pygame keys = pygame.key.get_pressed() if keys[pygame.K_w]: paddle.y -= 5 if keys[pygame.K_s]: paddle.y += 5 if keys[pygame.K_UP]: paddle.y -= 5 if keys[pygame.K_DOWN]: paddle.y += 5 La balle rebondit sur les murs if ball.top &lt;= 0 or ball.bottom >= HEIGHT: ball_dy = -ball_dy La balle rebondit sur la raquette if ball.colliderect(paddle): ball_dx = -ball_dx Du texte en pygame font = pygame.font.SysFont(None, 48) txt = font.render(f"{score}", True, (255, 255, 255)) screen.blit(txt, (x, y)) Dessiner un rectangle pygame.draw.rect(screen, (255, 255, 255), paddle) pygame.draw.ellipse(screen, (255, 220, 50), ball)</description></item><item><title>Session 4 : Enregistrement de la démo</title><link>https://python.coderdojohasselt.be/fr/sessions/python/04-pong/demo/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/fr/sessions/python/04-pong/demo/index.html</guid><description>Lance la solution : cd code/sessions/04-pong/solution &amp;&amp; uv run python main.py.
Enregistre ~10 secondes : joue quelques échanges et fais monter le score. Enregistre le fichier sous pong.gif dans static/sessions/04-pong/. Taille visée : ~600×400 pixels, ≤ 2 MB.</description></item></channel></rss>