<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sessie 2: Dodge Meteors :: CoderDojo Python &amp; Pygame</title><link>https://python.coderdojohasselt.be/sessions/python/02-dodge-meteors/index.html</link><description>Je ruimteschip zweeft in de donkere ruimte terwijl meteoren van boven naar beneden komen. Ontwijk ze, of verlies een leven. Hoe langer je overleeft, hoe sneller ze gaan. En deze keer bouw je ook Dojo Defender: het grotere project dat elke sessie groeit.
Wat je vandaag leert Lijsten gebruiken om meerdere objecten bij te houden Objecten spawnen (aanmaken) en verwijderen Levens bijhouden en een game-over scherm tonen Dojo Defender: je eigen ruimteschip toevoegen aan het grotere project Stap 0: Installeren Open Thonny. Download de starter via deze link, pak de ZIP uit en open main.py. Klik op Run. Je ziet je ruimteschip onderaan, maar er vallen nog geen meteoren. Problemen? Kijk bij Thonny instellen. Stap 1: Laat meteoren spawnen Vul de functie spawn_meteor() in. Een meteoor is een Actor die bovenaan het scherm begint op een willekeurige x-positie:</description><generator>Hugo</generator><language>nl</language><atom:link href="https://python.coderdojohasselt.be/sessions/python/02-dodge-meteors/index.xml" rel="self" type="application/rss+xml"/><item><title>Sessie 2: Coach-notities</title><link>https://python.coderdojohasselt.be/sessions/python/02-dodge-meteors/mentor-notes/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/sessions/python/02-dodge-meteors/mentor-notes/index.html</guid><description>Doel van deze sessie Na de Basic checkpoint kan een ninja:
Een lijst met meteoren aanmaken en beheren. Meteoren laten spawnen, bewegen en verwijderen als ze het scherm uit vallen. Levens aftrekken bij een botsing en stoppen als alle levens op zijn. Dojo Defender start vandaag. Ninjas voegen hun ruimteschip toe aan het grotere project.
Voorbereiding (30 min vóór de sessie) Starter ZIPs klaar op USB en de site: starter.zip en dojo-defender-s2.zip. Dojo Defender briefing voorbereiden: leg uit dat dit project elke sessie groeit en dat het de moeite loont om aanwezig te blijven. Zelf de starter éénmaal draaien op de dojoruimte-laptop. Tijdsindeling (3 uur) Tijd Activiteit 0:00 tot 0:10 Terugblik sessie 1 + intro meteoren 0:10 tot 0:25 Stap 1: spawn_meteor() 0:25 tot 1:00 Stap 2: bewegen + collision 1:00 tot 1:45 Stap 3 tot 4: game over, snelheid, score 1:45 tot 2:15 Dojo Defender intro + ruimteschip bewegen 2:15 tot 2:45 Buffer / stretch / expert 2:45 tot 3:00 Showcase + cliffhanger Veelgestelde vragen “Mijn lijst wordt steeds groter en het spel vertraagt” De meteoren worden niet verwijderd. Controleer of de remove()-call correct is en of de loop over meteors[:] (kopie) gaat, niet over meteors zelf.</description></item><item><title>Sessie 2: Cheatsheet</title><link>https://python.coderdojohasselt.be/sessions/python/02-dodge-meteors/cheatsheet/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/sessions/python/02-dodge-meteors/cheatsheet/index.html</guid><description>Lijst aanmaken en toevoegen meteors = [] # lege lijst rock = Actor('meteor') meteors.append(rock) # voeg toe Over een lijst loopen (met verwijderen) for rock in meteors[:]: # [:] = kopie rock.y += 4 if rock.y > HEIGHT + 30: meteors.remove(rock) Timer: iets elke N frames doen timer = 0 def update(): global timer timer += 1 if timer % 60 == 0: # elke seconde spawn_meteor() Collision met meerdere objecten for rock in meteors[:]: if rock.colliderect(ship): meteors.remove(rock) lives -= 1 Game over stoppen def update(): if game_over: return # rest van de code... Tekst op scherm screen.draw.text(f"Score: {score}", (10, 10), color="white") screen.draw.text( "GAME OVER", center=(WIDTH / 2, HEIGHT / 2), color="red", fontsize=60, ) Willekeurige positie import random x = random.randint(30, WIDTH - 30)</description></item><item><title>Sessie 2: Demo opname</title><link>https://python.coderdojohasselt.be/sessions/python/02-dodge-meteors/demo/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/sessions/python/02-dodge-meteors/demo/index.html</guid><description>Run de oplossing: cd code/sessions/02-dodge-meteors/solution &amp;&amp; uv run pgzrun main.py.
Neem ~10 seconden op terwijl je meteoren ontwijkt en een leven verliest. Sla op als dodge-meteors.gif in static/sessions/02-dodge-meteors/. Mikgrootte: ~600×500 pixels, ≤ 2 MB.
Verwijs ernaar in de worksheet via: ![Demo](/sessions/02-dodge-meteors/dodge-meteors.gif).</description></item></channel></rss>