<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sessie 4: Pong :: CoderDojo Python &amp; Pygame</title><link>https://python.coderdojohasselt.be/sessions/python/04-pong/index.html</link><description>Twee paddles, één bal: het klassieke Pong-spel. Maar er is een verrassing: deze sessie schrijf je het spel in echte pygame, zonder pgzrun. Je leert de game loop zelf Installeren. Dat is hoe de meeste echte games werken.
Wat je vandaag leert De pygame game loop: events, update, draw pygame.Rect voor rechthoeken en botsingen Bal laten stuiteren (snelheid omkeren) Score bijhouden voor twee spelers Stap 0: Installeren Open Thonny. Download de starter via deze link, pak de ZIP uit en open main.py. Klik op Run. Je ziet twee paddles en een gele bal in het midden, maar de bal beweegt nog niet. Verschil met pgzrun: Er zijn geen draw() en update() functies meer. Alles zit in één while running: loop.</description><generator>Hugo</generator><language>nl</language><atom:link href="https://python.coderdojohasselt.be/sessions/python/04-pong/index.xml" rel="self" type="application/rss+xml"/><item><title>Sessie 4: Coach-notities</title><link>https://python.coderdojohasselt.be/sessions/python/04-pong/mentor-notes/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/sessions/python/04-pong/mentor-notes/index.html</guid><description>Doel van deze sessie Na de Basic checkpoint kan een ninja:
Uitleggen wat de pygame game loop is en hoe die verschilt van pgzrun. De bal laten bewegen en stuiteren op boven- en onderrand én op beide paddles. Begrijpen wat pygame.Rect is en hoe colliderect werkt. Dit is de eerste sessie met echte pygame; verwacht verwarring over de game loop. Dat is normaal.
Voorbereiding Starter ZIP klaar. Test op de dojoruimte-laptop of pygame geïnstalleerd is (niet pgzero). Bereid een korte uitleg voor: “pgzrun deed de loop voor ons. Nu doen we het zelf.” Dojo Defender: ninjas migreren hun project ook naar pygame (starter bevat de basis). Tijdsindeling (3 uur) Tijd Activiteit 0:00 tot 0:15 Terugblik + uitleg pygame vs pgzrun 0:15 tot 0:45 Stap 1 tot 2: bal bewegen + stuiteren 0:45 tot 1:30 Stap 3: score bijhouden 1:30 tot 2:00 Stap 4: win-conditie + snelheid 2:00 tot 2:30 Dojo Defender: pygame migratie 2:30 tot 2:50 Showcase: 1-vs-1 potjes 2:50 tot 3:00 Cliffhanger Veelgestelde vragen “De bal beweegt maar verdwijnt meteen” ball_dx en ball_dy zijn 0. De ninja heeft de startwaarden niet veranderd. Wijs op de regel ball_dx, ball_dy = 0, 0.</description></item><item><title>Sessie 4: Cheatsheet</title><link>https://python.coderdojohasselt.be/sessions/python/04-pong/cheatsheet/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/sessions/python/04-pong/cheatsheet/index.html</guid><description>Pygame game loop 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() Rechthoek (Rect) paddle = pygame.Rect(x, y, breedte, hoogte) paddle.y -= 5 # bewegen paddle.colliderect(andere_rect) # botsing → True/False Toetsenbord in 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 Bal stuitert op muren if ball.top &lt;= 0 or ball.bottom >= HEIGHT: ball_dy = -ball_dy Bal stuitert op paddle if ball.colliderect(paddle): ball_dx = -ball_dx Tekst in pygame font = pygame.font.SysFont(None, 48) txt = font.render(f"{score}", True, (255, 255, 255)) screen.blit(txt, (x, y)) Rechthoek tekenen pygame.draw.rect(screen, (255, 255, 255), paddle) pygame.draw.ellipse(screen, (255, 220, 50), ball)</description></item><item><title>Sessie 4: Demo opname</title><link>https://python.coderdojohasselt.be/sessions/python/04-pong/demo/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/sessions/python/04-pong/demo/index.html</guid><description>Run de oplossing: cd code/sessions/04-pong/solution &amp;&amp; uv run python main.py.
Neem ~10 seconden op: speel een paar rally’s en laat de score oplopen. Sla op als pong.gif in static/sessions/04-pong/. Mikgrootte: ~600×400 pixels, ≤ 2 MB.</description></item></channel></rss>