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.wav en sounds/explosion.wav.
  • Test of pygame.mixer werkt op de dojoruimte-laptop (soms ontbreekt de audio-driver).
  • Dojo Defender: ninjas voegen vandaag geluidseffecten toe aan hun project.

Tijdsindeling (3 uur)

TijdActiviteit
0:00 tot 0:10Terugblik + intro geluid
0:10 tot 0:30Stap 1 tot 2: bal bewegen + stuiteren
0:30 tot 1:15Stap 3: stenen breken
1:15 tot 1:50Stap 4: levens, geluid, win/game over
1:50 tot 2:20Dojo Defender: geluid toevoegen
2:20 tot 2:50Buffer / stretch / expert
2:50 tot 3:00Showcase + cliffhanger

Veelgestelde vragen

“Geen geluid te horen” Twee oorzaken:

  1. pygame.mixer.init() staat niet bovenaan. Controleer de volgorde in de code.
  2. Het script wordt vanuit een andere map gestart. Python zoekt dan sounds/hit.wav in de map waar je staat, niet naast main.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; de try/except voorkomt 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.zip en dojo-defender-s5-solution.zip klaarzetten
  • Controleer of enemy_zigzag.png en enemy_charger.png in de starter zitten
  • Werkblad: Dojo Defender Sessie 4