Sprites
Programmeren in Scratch doe je met ‘sprites’, dat zijn poppetjes in het spel. In dit boeken noemen we ze soms sprites en soms poppetjes. Maar meestal noemen we ze bij naam: Giga, Karel en Hassan. Missschien heb je ze al gezien in de spellen. In Scratch zelf staat ook in de Nederlandse versie sprite, vandaar dat ik dat woord soms ook gebruik. Als je een nieuw spel maakt, krijg je vanzelf een leeg spel met het eerste poppetje: de vrolijke kat die ook het logo van Scratch is. Een spel kan heel veel ‘sprites’ hebben. Bijvoorbeeld een pacman ‘happertje’ en vier spoken. Scratch heeft een uitgebreide bibliotheek, maar leerlingen kunnen ook zelf plaatjes uploaden om ze tot leven te laten komen. Je kunt ook de achtergrond (het speelveld) veranderen, die heeft net iets andere programmeerblokjes dan de sprites. Een achtergrond kun je bijvoorbeeld niet laten bewegen.
Scripts
Iedere sprite kan meerdere stukjes programma hebben, die noemen we scripts. Bijvoorbeeld: een script het maken van een geluid, en eentje voor lopen, zoals in het plaatje hieronder. Alle scripts lopen ‘parallel’: ze worden tegelijk uitgevoerd.
Programmeren
Scratch is dus een programmeertaal, maar wat is programmeren eigenlijk? Er zijn veel antwoorden op die vraag. Een antwoord is: programmeren is een computer laten doen wat je wilt. En helaas spreken computer (nog) geen mensentaal, dus moeten we daar een computertaal voor gebruiken. Scratch is een programmeertaal voor kinderen, maar dat betekent niet dat het geen serieuze taal is! Alle belangrijke programmeerconcepten die ook een “grote mensen” talen zitten, kom je in Scratch tegen. In dit hoofdstuk leg ik een paar concepten uit.
Variabelen
Variabelen zijn opslagplaatsen voor data. Denk bijvoorbeeld aan een bankrekening, waar een bepaalde hoeveelheid geld op kan staan, of aan een schoolbord waarop je de klassenoudste van de week kunt schrijven. Een variabele kun je schrijven en lezen. Het simpelste voorbeeld in de Scratch lessen is het aantal punten in een spel. Steeds als je, bijvoorbeeld, een muntje pakt, krijg je er een punt bij. Het hoeft niet perse een getal te zijn, we kunnen ook tekst opslaan in een variabele.
Als-dan-(anders)
Een van de centrale concepten in programmeren is de als-dan, of in het Engels if-then. Als dit, dan dat. Dat is helemaal niet moeilijk, want dat gebruik je in het Nederlands ook zo vaak! Als het regent, doe ik mijn laarzen aan. In Scratch gaat dat zo:
Soms wordt de als-dan gecombineerd met een anders: Als het regent, doe ik laarzen aan, anders schoenen. In het Engels heet dat de ‘else’: if-then-else. In Scratch:
Lussen
Een lus is een stukje programmeertaal dat andere opdrachten herhaalt. Ook in het Nederlands gebruiken we vaak de Engelse term ‘loop’. In Scratch maak je een lus met een herhaalblok. De simpelste vorm is een herhaling zonder conditie:
Deze Scratchblokken zorgen ervoor dat het bijbehorende poppetje eindeloos vooruit gaat. In theorie dan, in de praktijk zal de sprite bij de rand ophouden en dan vastlopen. Je hebt ook herhaalblokken met een conditie. Herhaal tot, bijvoorbeeld.
Hier gaat de sprite door tot deze de muur raakt en stopt dan netjes. Je ziet dat het ‘herhaal tot’ blok een soort haakje”onderaan heeft, nadat de sprite de muur raakt kan de code daar verder gaan. Lussen met condities kom je in de “vrije natuur” tegen, bijvoorbeeld: loop rechtboor tot je bij de grote eikenboom bent. Hoe zou dat er in Scratch blokken uit zien?
Events
Scratch is “event-based”. Dat betekent dat Scratch programma’s kunnen reageren op gebeurtenissen in de omgeving. Bijvoorbeeld: Wanneer de groene vlag wordt aangeklikt, of wanneer er op de spatiebalk gedrukt wordt. Ieder ‘script’ in Scratch moet altijd beginnen met een event-blok, die je kunt herkennen aan hun hoedvorm:
Signalen
Als sprites met elkaar willen communiceren, kan dat met signalen. Bijvoorbeeld als een sprite wil doorgeven aan andere speler dat hij af is.