We gaan met Scratch het klassieke spel Snake bouwen.
Benodigdheden
Ga naar https://scratch.mit.edu/ en klik op ‘Aan de slag’.
- Als je Scratch nog niet eerder hebt uitgeprobeerd, bekijk dan eerst de video onderaan die pagina.
- Klik daarna op het groene pijltje naast de video om stap-voor-stap te leren hoe Scratch werkt.
- Als je meer wil leren, klik dan bovenaan op ‘Lessen’, of ga hier verder met de handleiding.
Inleiding
In deze opdracht ga je het klassieke spelletje Snake, dus Slang, programmeren. Je bestuurt in dit spelletje een slang en je doel is door zo veel mogelijk te eten zo lang mogelijk te worden. Maar pas op, als je in je eigen staart bijt dan ben je af!
Dit zijn de stappen die je gaat programmeren:
- Maak de slang
- Zorg dat de slang kan bewegen
- Laat het eten van de slang verschijnen
- Maak de slang langer door het eten
- Laat het spel eindigen als de slang in de eigen staart bijt
Als je dan nog zin (en tijd) hebt dan zijn er nog allerlei uitbreidingen mogelijk.
De opdracht is afgeleid van deze instructies (Github bron).
Maak de slang
Als je gekozen hebt het project helemaal vanaf het begin te doen, ontwerp dan je eigen slang of download deze plaatjes om de twee uiterlijken van de slang mee te maken:
Volg deze stappen om een sprite van de slang te maken:
- Klik op het icoon voor een nieuwe sprite (rechtsonder, plaatje van de kat) en kies voor Upload sprite.
- Upload het hoofd van de slang.
- Ga naar het tabblad Uiterlijken (linksboven, rechts naast het Code tabblad).
- Klik op het icoon voor een nieuw uiterlijk (linksonder, plaatje van de kat) en kies voor Upload uiterlijk.
- Upload het lijf van de slang.
- Klik nu op het hoofd van de slang.
Zorg dat de slang kan bewegen
Het is de bedoeling om de slang met de pijltjestoetsen te laten bewegen. Er zijn verschillende manieren om dit te doen, bijvoorbeeld zo:
Met richt naar 0 graden draai je het hoofd van de slang naar boven, met neem 5 stappen beweegt de slang 5 stappen in die richting. Maar… als je de toets loslaat, dan houdt de slang op met bewegen.
Opdracht Zorg dat de slang doorgaat met bewegen totdat je een andere kant op gaat.
Tip 1: hiervoor heb je het herhaal blok uit het menu Besturen nodig.
Tip 2: begin het programma met het wanneer op de vlag wordt geklikt blok uit het menu Gebeurtenissen.
In de voorbeeldcode wordt het blok wacht 0.1 sec. gebruikt. Dit is niet nodig om de slang te laten bewegen, maar wordt verderop in het spel belangrijk. Door de wachttijd en/of het aantal stappen dat de slang zet te veranderen kun je de snelheid van de slang bepalen.
Laat de appels verschijnen
Nu is het tijd om de slang eten te geven. Dit voorbeeld gaat uit van appels, je kunt natuurlijk ook iets heel anders verzinnen. Om het lekker onvoorspelbaar te maken waar de appel verschijnt, is het blok ga naar willekeurige positie uit het menu Beweging heel geschikt.
Opdracht Maak een nieuwe sprite voor de appel, en zorg dat er bij het begin van het spel een appel verschijnt.
Tip: zorg dat je de appel-sprite hebt gekozen, zodat de code die je maakt ook echt bepaalt wat de appel moet doen.
De volgende stap is om een “nieuwe” appel op een andere plek te laten verschijnen wanneer de slang er een heeft opgegeten. Hiervoor maak je niet echt een nieuwe appel, maar je laat de appel-sprite gewoon op een andere plek verschijnen.
Opdracht Laat de appel op een andere plek verschijnen als de slang er een heeft opgegeten.
Tip: hiervoor kun je het blok raak ik … uit het menu Waarnemen gebruiken.
Maak de slang langer
Van al die appels groeit de slang natuurlijk wel! Het is nu tijd om de slang langer te maken als je een appel eet. Hiervoor is het eerst nodig dat je bijhoudt hoeveel appels de slang al heeft gegeten, dat kun je ook meteen als je score in het spel gebruiken!
Opdracht Hou het aantal gegeten appels bij.
Tip 1: hiervoor heb je een variabele nodig, deze maak je in het menu Variabelen.
Tip 2: zet aan het begin van het spel de waarde van de variabele op 0.
Nu komt het moeilijkste stukje van het spel: het lijf van de slang! Hiervoor ga je werken met klonen van de slang, deze functies vind je in het menu Besturen. Dit werkt zo:
- het lijf van de slang maak je door op de plek van het hoofd een kloon te maken.
- het lijf van de slang is het tweede uiterlijk van de slang sprite, om de kop in een lijf te laten veranderen heb je het verander uiterlijk naar blok in het menu Uiterlijken nodig.
- als je nog geen of weinig appels hebt gegeten, dan wil je zo’n kloon meteen - of in ieder geval heel snel - weer laten verdwijnen.
- hoe meer appels je hebt gegeten dus hoe hoger je score, hoe langer je wilt wachten met het laten verdwijnen van de kloon.
Opdracht Kloon de kop van de slang (bij iedere stap), en laat de kloons na een tijdje weer verdwijnen. Tip: je kunt uitrekenen hoe lang je moet wachten door je score te vermenigvuldigen met hoe lang 1 stap van de slang duurt.
Verliezen als je in jezelf hapt
Je hebt nu een slang die steeds langer wordt als ie meer appels eet. Wat nog mist is dat het spel is afgelopen als je slang in zichzelf bijt. Dit gebeurt wanneer een deel van het lijf een ander deel van het lijf raakt.
Opdracht Zorg ervoor dat het spel stopt als de slang in zichzelf bijt.
Tip: hiervoor kun je weer het raak ik blok gebruiken.
Uitbreidingen
Je kunt het spel natuurlijk nog veel mooier, spannender en moeilijker maken. Hier heb je alvast een lijstje met ideeën als je nog verder wil programmeren aan Snake:
- laat de appels na een tijdje weer verdwijnen
- maak een start- of eindscherm voor het spel
- laat de slang sneller gaan als je meer appels hebt gegeten
- laat het spel ook afgelopen zijn als je de rand raakt
- kies een mooie achtergrond voor je spel
- laat ook voorwerpen verschijnen die je juist moet ontwijken
- programmeer het spel voor twee spelers
Licentie
Deze instructies worden, net als alle andere instructies van CoderDojo Nijmegen, aangeboden onder een Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Licentie.