Bronnen
(Inhoud volgt; deze sectie wordt later ingevuld.)
(Inhoud volgt; deze sectie wordt later ingevuld.)
Je game ziet er meteen professioneler uit met goede sprites, geluidseffecten en muziek, en het hoeft je niets te kosten. Hieronder vind je de beste plekken om gratis assets te zoeken, netjes gesorteerd per categorie.
.wav. Geen licentiezorgen: je genereert het zelf.pygame.font.Font).Niet alle “gratis” assets zijn gelijk. Dit zijn de drie licenties die je het vaakst tegenkomt:
| Licentie | Mag je gebruiken? | Attributie nodig? | Commercieel gebruik? |
|---|---|---|---|
| CC0 | Ja | Nee | Ja |
| CC-BY | Ja | Ja, vermeld de auteur | Ja |
| CC-BY-NC | Ja | Ja | Nee |
Praktisch advies: Als je twijfelt, gebruik dan CC0. Je hebt geen toestemming nodig, je hoeft niemand te crediten en je loopt nooit het risico per ongeluk de regels te overtreden. Kenney.nl is je beste vriend.
Bekijk hoe wij assets in dit project documenteren op de pagina Asset-licenties.
De meeste assets zijn CC0 (publiek domein). Uitzonderingen staan vermeld in de tabel met licentie en verplichte credit-tekst.
| Bestand | Bron | Licentie | Auteur | Datum gedownload |
|---|---|---|---|---|
basket.png | Kenney Space Shooter Redux | CC0 | Kenney (kenney.nl) | 2026-05-11 |
star.png | Kenney Space Shooter Redux | CC0 | Kenney (kenney.nl) | 2026-05-11 |
ship.png | Kenney Space Shooter Redux | CC0 | Kenney (kenney.nl) | 2026-05-11 |
challenges/01-snake/fruits/*.png (9 stuks) | Kenney Food Kit | CC0 | Kenney (kenney.nl) | 2026-05-24 |
Bestanden staan in static/_shared/images/ en zijn beschikbaar op het
gepubliceerde URL-pad /_shared/images/<bestandsnaam>.
| Bestand | Bron | Licentie | Auteur | Datum gedownload |
|---|---|---|---|---|
shoot.wav | CC0 | 2026-05-11 | ||
hit.wav | CC0 | 2026-05-11 | ||
explosion.wav | CC0 | 2026-05-11 | ||
pickup.wav | CC0 | 2026-05-11 | ||
jump.wav | CC0 | 2026-05-11 | ||
music.ogg | incompetech.com | CC-BY 4.0 | Kevin MacLeod | 2026-05-17 |
music.ogg“Ethereal Relaxation” Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 4.0
creativecommons.org/licenses/by/4.0
Creative Commons 0).static/_shared/images/ of static/_shared/sounds/.Je hebt een gaaf spel gemaakt en nu wil je het delen met de rest van de wereld. Met pygbag zet je jouw Pygame-spel om in een webpagina die iedereen in de browser kan spelen. Geen installatie, geen gedoe. Gewoon een link sturen en klaar!
Pygbag compileert je Python-code naar WebAssembly en verpakt het met een kleine Pygame-runtime die in de browser draait. De speler hoeft niks te installeren: gewoon de pagina openen en spelen. Dat maakt het perfect om je spel te delen met vrienden, familie of op itch.io.
Pygbag werkt niet met Pgzero (de vereenvoudigde bibliotheek van de eerste sessies). Je hebt echte Pygame nodig, dus dit is beschikbaar vanaf sessie 4 en later.
Verder zijn er een paar dingen die niet werken in de browser:
threading of multiprocessing.In een uv-project:
uv add pygbagOf in Thonny via de pakketbeheerder:
pip install pygbagPygbag vereist dat je hoofdlus asynchroon is. Dat betekent: je main-functie wordt async def main(), en in elke frame-iteratie voeg je await asyncio.sleep(0) toe. Die ene regel geeft de browser de kans om te ademen tussen frames.
Hieronder vind je een kant-en-klare basisstructuur: Pygbag-klare structuur voor main.py:
import asyncio
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
clock = pygame.time.Clock()
async def main():
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 60))
pygame.display.flip()
clock.tick(60)
await asyncio.sleep(0) # required for pygbag
asyncio.run(main())Pas je eigen spelcode aan zodat alles binnen async def main() zit, en vergeet await asyncio.sleep(0) onderaan de while-lus niet.
Navigeer in je terminal naar de map met main.py en voer uit:
uv run python -m pygbag --build main.pyDe output verschijnt in de map build/web/. Die map bevat alles wat nodig is om je spel te hosten.
Wil je eerst zien of het werkt voordat je publiceert? Gebruik hetzelfde commando zonder --build:
uv run python -m pygbag main.pyPygbag start een lokale webserver op http://localhost:8000. Open die link in je browser en je speelt je eigen spel, precies zoals anderen het zullen zien.
Als alles werkt, zijn er twee manieren om je spel te delen:
build/web/ en geef het zipbestand aan je coach. Die zorgt voor de hosting.build/web/. Binnen een paar minuten heeft je spel een eigen pagina die iedereen kan bezoeken!Gefeliciteerd! Je hebt zojuist een echt webspel gepubliceerd. 🎮
Voor een toekomstige Engelse versie.
Dit curriculum is gepubliceerd in het Nederlands. Een Engelse versie is niet gepland voor v1, maar de inhoud is gestructureerd om vertaling eenvoudig te maken.
basket, star, ship, score) blijven Engels, want ze staan in het Python-bestand.star.png, boom.wav) blijven taalneutraal..md files.Niet gepland voor v1. Mogelijke toekomstige aanpakken:
hugo.toml en <page>.en.md per pagina.content.en/ met dezelfde structuur.Beslis dit als er een Engelstalige dojo om vraagt, niet eerder.