Sessie 5: Coach-notities
Doel van deze sessie
Na de Basic checkpoint kan een ninja:
- De bal verticaal laten bewegen en stuiteren op alle vier de randen en de paddle.
- Geluid afspelen bij een botsing.
- Levens verminderen als de bal de onderkant bereikt.
Voorbereiding
- Starter ZIP klaar. Bevat
sounds/hit.wavensounds/explosion.wav. - Test of
pygame.mixerwerkt op de dojoruimte-laptop (soms ontbreekt de audio-driver). - Dojo Defender: ninjas voegen vandaag geluidseffecten toe aan hun project.
Tijdsindeling (3 uur)
| Tijd | Activiteit |
|---|---|
| 0:00 tot 0:10 | Terugblik + intro geluid |
| 0:10 tot 0:30 | Stap 1 tot 2: bal bewegen + stuiteren |
| 0:30 tot 1:15 | Stap 3: stenen breken |
| 1:15 tot 1:50 | Stap 4: levens, geluid, win/game over |
| 1:50 tot 2:20 | Dojo Defender: geluid toevoegen |
| 2:20 tot 2:50 | Buffer / stretch / expert |
| 2:50 tot 3:00 | Showcase + cliffhanger |
Veelgestelde vragen
“Geen geluid te horen” Twee oorzaken:
pygame.mixer.init()staat niet bovenaan. Controleer de volgorde in de code.- Het script wordt vanuit een andere map gestart. Python zoekt dan
sounds/hit.wavin de map waar je staat, niet naastmain.py. De starter gebruikt_DIR = os.path.dirname(os.path.abspath(__file__))om dit op te lossen. Wijs de ninja hierop. Op sommige laptops ontbreekt de audio-driver; detry/exceptvoorkomt dat het script dan crasht.
“De bal gaat door stenen heen”
De break na het verwijderen van een steen ontbreekt; zonder break controleert Python meerdere stenen in hetzelfde frame en kan ball_dy twee keer omgekeerd worden.
“De bal versnelt oncontroleerbaar”
ball_dy = -ball_dy wordt meerdere keren per frame aangeroepen (paddle EN onderkant tegelijk). Voeg een cooldown of een positiecheck toe.
Hints voor Stretch en Expert
Stretch: stenen breken:
De break is essentieel. Leg uit: als je hem weglaat, controleert de loop alle stenen en keert ball_dy meerdere keren om in hetzelfde frame.
Expert: snelheid: Gebruik een factor op basis van het aantal resterende stenen, niet een vaste toename per botsing. Zo is de versnelling voorspelbaar.
Cliffhanger-script
“Volgende keer: zwaartekracht. Jouw karakter valt naar beneden, tenzij jij hem op tijd laat springen. Platforms, sterren en een sprong met geluid.”
Dojo Defender vandaag
Naast Breakout werken ninja’s vandaag aan Dojo Defender Sessie 4: menu + drie vijandtypes.
Doelen:
- State machine implementeren (MENU, PLAYING, GAME_OVER)
- Reset-functie schrijven
- Drie vijandtypes: drone, zigzag, charger
- Wave-systeem met oplopende moeilijkheid
Tijdsverdeling: zie de tabel hierboven — 1:50 tot 2:20 is voor Dojo Defender.
Voorbereiding:
dojo-defender-s5-starter.zipendojo-defender-s5-solution.zipklaarzetten- Controleer of
enemy_zigzag.pngenenemy_charger.pngin de starter zitten - Werkblad: Dojo Defender Sessie 4