Space Invaders
Notitie
Vereist: sessie 7 afgerond.
Aliens staan in een 4×9 formatie. Ze bewegen heen en weer, zakken omlaag bij elke rand en schieten willekeurig terug. Jij hebt één schip en drie levens. Schiet ze allemaal neer voordat ze landen.
Opstarten
Download de startcode en pak de ZIP uit. Open main.py in Thonny en klik Run. Je ziet het schip en de alien-formatie. De besturing en de afbeeldingen staan al klaar. Jij vult de beweging, het schieten en de botsingen in.
Hoe werkt het?
Alle aliens zijn pygame.Rect-objecten in één lijst. Elk frame beweeg je ze allemaal met hetzelfde aantal pixels. Raakt de formatie een rand, dan keer je de richting om en laat je elk alien ALIEN_VAL pixels zakken.
for alien in aliens:
alien.x += snelheid * alien_richting
rechts = max(a.right for a in aliens)
links = min(a.left for a in aliens)
if rechts >= BREEDTE or links <= 0:
alien_richting *= -1
for alien in aliens:
alien.y += ALIEN_VALKogels zijn ook pygame.Rect-objecten. Speler-kogels gaan omhoog (k.y -= KOGEL_SNL), alien-kogels gaan omlaag (k.y += ALIEN_SNL). Botsingen check je met k.colliderect(alien).
✅ Basic
- Teken de achtergrond (gebruik
random.seed(42)voor vaste sterren), het schip en alle aliens. - Beweeg het schip links/rechts met de pijltjestoetsen.
- Laat de formatie heen en weer bewegen en omlaag zakken bij een rand.
- Schiet een kogel omhoog als de speler op spatie drukt. Gebruik
COOLDOWN_MSom razendsnel schieten te voorkomen.
⭐ Stretch
- Speler-kogel raakt alien: verwijder beide, score += 10.
- Elk alien schiet willekeurig terug:
if random.random() < SCHIET_KANS. - Alien-kogel raakt speler: levens -= 1, bij 0 levens → game over.
- Toon score en levens linksboven.
🔥 Expert
- De formatie versnelt naarmate er minder aliens zijn:
1 + 3 * (1 - restant). Van 1 pixel/frame bij het begin tot 4 pixels/frame bij de laatste alien. - Game over als een alien de onderkant bereikt (
alien.bottom >= HOOGTE - 50). - Game over (gewonnen) als de lijst leeg is.
- Herstart met R: stel alle variabelen opnieuw in via een
reset()-functie.
Downloads
- Startcode:
main.pymet venster, afbeeldingen en alien-rooster klaar; jij vult de logica in. - Afbeeldingen: ship.png, enemy.png en laser.png als je zonder startcode begint.
Afbeeldingen: Kenney Space Shooter Redux, CC0 (publiek domein). kenney.nl