Dojo Defender Sessie 1: Coach-notities

Doel van deze sessie

Na deze sessie kan een ninja:

  • Een lijst met asteroïden aanmaken en beheren met Actor
  • Asteroïden spawnen met een timer en verwijderen als ze uit beeld zijn
  • Botsingen detecteren met colliderect
  • Levens bijhouden en game-over afdwingen
  • Een eenvoudige explosie-animatie tonen

Voorbereiding (30 min vóór de sessie)

  • Starter ZIPs klaar op USB en de site: dojo-defender-s2-starter.zip en dojo-defender-s2-solution.zip.
  • De starter zelf éénmaal draaien op de dojoruimte-laptop.
  • Uitleggen dat Dojo Defender elke sessie terugkomt — moedig aan om de code goed te bewaren.

Tijdsindeling (3 uur)

Deze sessie is integraal onderdeel van de normale sessie 2 (Dodge Meteors). Gebruik de tijd als volgt:

TijdActiviteit
0:00 tot 1:00Sessie 2: Dodge Meteors (Stap 1-4)
1:00 tot 1:15Dojo Defender intro + starter downloaden
1:15 tot 1:45Stap 1-2: asteroïden spawnen + bewegen
1:45 tot 2:15Stap 3: collision + levens
2:15 tot 2:45Stap 4: explosies + invincibility
2:45 tot 3:00Showcase + cliffhanger

Veelgestelde vragen

“Mijn asteroïden worden niet getekend” Waarschijnlijk staat de for-loop voor asteroïden niet in draw(), of staat die ná een return-statement.

"global geeft een fout" global timer moet bovenaan de functie staan, vóór de eerste keer dat timer gebruikt wordt.

“Het schip is onzichtbaar na een botsing” Controleer of ship.visible = True wordt gezet als de explosie voorbij is. De reset-gebeurtenis moet na frame 4 van de explosie komen.

“De explosie wordt niet getoond” Vergeet niet explosion.draw() in draw() aan te roepen, en explosion_active op True te zetten bij een botsing.


Hints voor Stretch en Expert

Stretch: collision Leg uit dat colliderect controleert of twee rechthoeken (hitboxes) elkaar overlappen. Dit is de standaardmanier in pgzero.

Expert: explosie Het explosie-mechanisme is een handmatige frame-animatie: verander elke 5 frames de image van de Actor. Dit is een eenvoudige maar effectieve techniek.

Expert: invincibility Invincibility voorkomt dat je meteen opnieuw geraakt wordt na een explosie. Gebruik een teller die elke frame aftelt.


Cliffhanger-script

“Vandaag heb je asteroïden ontweken en zag je je schip ontploffen. Volgende keer: je ruimteschip SCHIET TERUG. Vijanden in formatie, en jij hebt lasers. Klaar om aan te vallen?”