Sessie 3: Coach-notities
Doel van deze sessie
Na de Basic checkpoint kan een ninja:
- Een kogel aanmaken als SPATIE wordt ingedrukt en die opslaan in een lijst.
- Kogels omhoog laten bewegen en verwijderen als ze het scherm uit gaan.
- Verstaan waarom je
bullets[:]gebruikt en nietbulletsbij verwijderen in een loop.
Voorbereiding
- Starter ZIP klaar op USB en de site.
- Zelf éénmaal de oplossing draaien om de timing van de stappen te kennen.
- Dojo Defender: ninjas voegen vandaag een schietmechanisme toe aan hun project.
Tijdsindeling (3 uur)
| Tijd | Activiteit |
|---|---|
| 0:00 tot 0:10 | Terugblik sessie 2 + intro |
| 0:10 tot 0:20 | Stap 1: schip bewegen (review) |
| 0:20 tot 1:00 | Stap 2: schieten + kogels bewegen |
| 1:00 tot 1:45 | Stap 3: collision vijanden |
| 1:45 tot 2:15 | Stap 4: vijanden bewegen + game over |
| 2:15 tot 2:45 | Dojo Defender: schietmechanisme toevoegen |
| 2:45 tot 3:00 | Showcase + cliffhanger |
Veelgestelde vragen
"bullets geeft een RuntimeError tijdens verwijderen"
De ninja loopt over de originele lijst terwijl hij verwijdert. Laat bullets[:] (kopie) gebruiken.
“Mijn kogels verschijnen niet”
Controleer of kogel.draw() in draw() staat (in de loop over bullets). Controleer ook of bullets leeg is bij de start.
"on_key_down wordt niet herkend"
Dit is een Pgzero-callback: de functie moet exact zo heten. Controleer typo’s.
Hints voor Stretch en Expert
Stretch: collision:
De geneste loop (kogels × vijanden) is de kern. Leg uit waarom je break nodig hebt na het verwijderen, anders crasht Python omdat je de bullets-lijst al gewijzigd hebt terwijl de innerlijke loop verder loopt.
Expert: vijanden bewegen:
Gebruik de bestaande timer-variabele. Leg uit dat % 90 elke 90 frames triggert, wat bij 60 fps neerkomt op 1,5 seconde per stap.
Cliffhanger-script
“Volgende keer: geen aliens, maar een klassieke uitdager: PONG. Twee spelers, één bal, en je leert de échte pygame-manier van programmeren.”
Dojo Defender vandaag
Ninjas die meedoen met Dojo Defender voegen vandaag schieten en vijanden toe aan hun S1-project.
Tijdsverdeling: besteed ~45 min aan Dojo Defender na de reguliere S3 content.
Stappen:
- Open de S2-starter (kopie van de S1-oplossing).
- Stap 1-2: schieten met SPATIE en cooldown.
- Stap 3: vijanden spawnen.
- Stap 4: collision + waves.
Starter: dojo-defender-s3-starter.zip
Oplossing: dojo-defender-s3-solution.zip
Werkblad: /dojo-defender/session-2/
Let op: Ninjas die S1 misten, hebben de S1-oplossing nodig als starting point.