<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dojo Defender: Sessie 2 :: CoderDojo Python &amp; Pygame</title><link>https://python.coderdojohasselt.be/dojo-defender/session-2/index.html</link><description>Je schip heeft nu een wapen. Vijanden komen eraan. Schiet ze neer voordat ze de bodem bereiken. Elke 10 vijanden betekent een nieuwe wave — en het wordt steeds moeilijker.
Wat je vandaag leert Schieten met de spatiebalk en een cooldown Lijsten voor kogels en vijanden Collision tussen kogels en vijanden Golven (waves) die steeds moeilijker worden Vijanden die sinus-bewegingen maken Stap 0: Open de starter Open Thonny. Download de Dojo Defender starter voor vandaag, pak de ZIP uit en open main.py. Was je er vorige keer niet bij? Download de oplossing van sessie 1 en begin daarmee. Klik op Run. Je ziet hetzelfde spel als vorige keer: schip, asteroïden, explosies. Problemen? Kijk bij Thonny instellen. Stap 1: Schieten met SPATIE Je schip heeft een laserkanon. Voeg een lijst voor kogels toe bovenaan:</description><generator>Hugo</generator><language>nl</language><atom:link href="https://python.coderdojohasselt.be/dojo-defender/session-2/index.xml" rel="self" type="application/rss+xml"/><item><title>Dojo Defender Sessie 2: Cheatsheet</title><link>https://python.coderdojohasselt.be/dojo-defender/session-2/cheatsheet/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/dojo-defender/session-2/cheatsheet/index.html</guid><description># Schieten met SPATIE def on_key_down(key): global shoot_cooldown if key == keys.SPACE and shoot_cooldown == 0: bullet = Actor('bullet') bullet.x = ship.x bullet.y = ship.y - 20 bullets.append(bullet) shoot_cooldown = 15 # Kogels laten bewegen en verwijderen for bullet in bullets[:]: bullet.y -= 8 if bullet.y &lt; -10: bullets.remove(bullet) # Vijand spawnen def spawn_enemy(): enemy = Actor('enemy_drone') enemy.x = random.randint(30, WIDTH - 30) enemy.y = -30 enemy.speed = random.uniform(1, 3) enemies.append(enemy) # Vijand spawn-interval spawn_counter += 1 if spawn_counter >= spawn_interval: spawn_counter = 0 spawn_enemy() # Kogel raakt vijand for bullet in bullets[:]: bullet.y -= 8 if bullet.y &lt; -10: bullets.remove(bullet) continue for enemy in enemies[:]: if bullet.colliderect(enemy): bullets.remove(bullet) enemies.remove(enemy) score += 10 break # Waves enemies_destroyed += 1 if enemies_destroyed % 10 == 0: wave += 1 spawn_interval = max(60, spawn_interval - 10) # Sinus-beweging (import math) enemy.x = enemy.start_x + math.sin(timer * 0.03 + enemy.strafe_offset) * 50 # Wave tekst tonen if wave_display_timer > 0: screen.draw.text(f"WAVE {wave}!", center=(WIDTH/2, HEIGHT/2), color="yellow", fontsize=60)</description></item><item><title>Dojo Defender Sessie 2: Coach-notities</title><link>https://python.coderdojohasselt.be/dojo-defender/session-2/mentor-notes/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/dojo-defender/session-2/mentor-notes/index.html</guid><description>Doel van deze sessie Na deze sessie kan een ninja:
Kogels aanmaken met on_key_down en een cooldown-mechanisme Enemy-objecten spawnen en laten bewegen met sinus-oscillatie Collision detectie tussen kogels en vijanden (geneste loop) Wavesysteem opzetten met oplopende moeilijkheid Voorbereiding (30 min vóór de sessie) Starter ZIPs klaar op USB en de site: dojo-defender-s3-starter.zip en dojo-defender-s3-solution.zip. De starter zelf éénmaal draaien op de dojoruimte-laptop. Ninjas die S1 misten: verwijs naar de S1-oplossing. Tijdsindeling (3 uur) Deze sessie is integraal onderdeel van de normale sessie 3 (Space Blaster). Gebruik de tijd als volgt:</description></item><item><title>Dojo Defender Sessie 2: Demo</title><link>https://python.coderdojohasselt.be/dojo-defender/session-2/demo/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://python.coderdojohasselt.be/dojo-defender/session-2/demo/index.html</guid><description>Hoe demonstreer je de oplossing Open een terminal in de projectmap. Voer uit: uv run python3 code/sessions/03-space-blaster/dojo-defender-solution/main.py Laat zien: Het schip beweegt links/rechts met pijltjestoetsen. SPATIE schiet een kogel omhoog (cooldown zichtbaar). Vijanden (enemy_drone) spawnen bovenaan en vallen met sinus-beweging. Kogel raakt vijand → beide verdwijnen, +10 punten. Elke 10 kills: wave gaat omhoog, vijanden spawnen sneller. Asteroïden blijven nog steeds vallen (van S1). Kogel kan ook asteroïden raken (+5 punten). Drie levens, explosie-animatie, invincibility, game over — alles van S1 werkt nog.</description></item></channel></rss>