Scratch in drie uur Hallo, mijn naam is Minti Mint! Ik ga je uitleggen hoe je je eigen computerspel kunt maken. We gaan een racespel maken! Bernd Gärtner Nederlandse vertaling en bewerking: Martine Segers Scratch is een programmeertaal waarmee je je eigen interactieve animaties, spelletjes, muziek en kunstwerken kunt maken. Die kun je ook online delen als een Scratch-project. Scratch is in veel talen beschikbaar, ook in het Nederlands! Je hoeft dus geen Engels geleerd te hebben om er mee te kunnen werken. Om je eigen computerprogramma s te maken, moet je gekleurde blokken op elkaar stapelen. Op die blokken staan opdrachten voor de computer. De blokken vertellen de computer wat allerlei figuurtjes in je programma moeten gaan doen. Die figuurtjes kun je zelf tekenen, maar je kunt ook de plaatjes uit de plaatjesbibliotheek van Scratch gebruiken of bijvoorbeeld een foto importeren. Projecten maak je extra leuk door er ook geluidjes en/of muziek aan toe te voegen.
Maak je eigen racespelletje! Doel van deze les is om een programma te maken waarmee je Scratch-kat over een racebaan kunt sturen. Het is handig om voor je aan de slag gaat de bijbehorende online uitleg «Scratch in vijf minuten» te bekijken. Die vind je op de website van Scratch: http://scratch.mit.edu/projects/63169612/ Offline en online: beide mogelijk en beide gratis beschikbaar Je kunt de offline editor Scratch 2.0 downloaden via: https://scratch.mit.edu/scratch2download/. Meer info over de offline editor vind je hier: http://wiki.scratch.mit.edu/wiki/scratch_2.0_offline_editor Je kunt ook een account aanmaken en online aan projecten werken. Een account aanmaken doe je op http://scratch.mit.edu/, waarna je klikt op «Word Scratcher». Je hebt dan wel een e-mailadres nodig. Als je voor offline kiest, kun je je projecten later gemakkelijk alsnog online delen. Nadat je een account aangemaakt hebt, kun je in de offline editor onder het kopje «Bestand» linksboven op «Share to website» klikken (een van de weinig teksten die niet vertaald is naar het Nederlands). Helaas werkt Scratch (nog) niet op tablets waar geen Adobe Flash-software op draait. 2
Het speelveld: Hier zie je je project in actie! De dingen en figuurtjes in je project noemen we sprites. Een project bevat niet alleen je code (de gekleurde blokjes), maar ook de achtergronden, geluiden en verschillende uiterlijken van de figuurtjes. Het blokken-keuzemenu: Hier selecteer je de gekleurde blokken die je nodig hebt voor je programma. Klik erop en sleep ze naar rechts. Zo ziet het scherm eruit als je een project maakt. Het scherm is opgedeeld in vier delen die ik hier aan je toelicht. Lijst met sprites: Elke sprite heeft zijn eigen code (gekleurde blokjes). Ook de achtergrond heeft zijn eigen code. Door op een sprite te klikken, krijg je rechts de bijbehorende code te zien. Die code vertelt de computer wat hij moet doen als je op de groene vlag klikt. Bouw hier je scripts: Hier stapel je gekleurde blokken en bouw je een script dat de sprites en de achtergrond vertelt wat ze moeten doen. 3
Aan de slag! Laten we een racebaan maken. 1. Klik op het penseel (links op het scherm). Daarna kun je rechts een nieuwe achtergrond gaan tekenen. 2. Teken een racebaan met start en finish. Tekenpenseel Kies hier je kleur Dikte van je penseel 4
3. Klik op de Scratch-kat in de sprite-lijst, zodat er een blauwe rand omheen komt. 5. Maak die kat nu kleiner door op de krimp-knop en daarna op de kat te klikken. 4. Kies nu een nieuw uiterlijk voor de kat door op het poppetje (Giga) te klikken. In de sprite-bibliotheek zoek je daarna «cat2» onder het kopje dieren. Kleiner maken Nu gaan we van Scratch-kat een race-kat maken. Let op dat de kat klein genoeg is om over de baan te racen. 5
Nu gaan we echt programmeren! 6. Selecteer nu de kat (en dus niet de achtergrond) door er op te klikken. Dan komt er een blauwe rand omheen. 7. Selecteer vervolgens het blokken-keuzemenu door op Scripts te klikken (zie witte pijl). 8. Sleep nu de blokken naar rechts om te starten met het maken van je programma. 6
Gebruik deze blokjes: 9. Selecteer de «s» via een klik op het driehoekje. (Eerst staat er spatiebalk.) Naar de start 10. Beweeg je muis naar de start en bekijk rechtsonder het speelveld welke x- en welke y-waarde daar bijhoren. Zet die getallen in het blauwe blok. Programmeer Scratchkat zo dat hij naar de start gaat als de speler op het toetsenbord op de «s» drukt. Bepaal je richting x = 0 en y = 0 is het midden van het speelveld. x = -160 betekent 160 stappen (pixels) links van het midden. y = 96 betekent dat de kat bij de start 96 stappen (pixels) boven het midden staat. 11. Bepaal met een kompas in welke richting de neus van de kat wijst bij de start. Hiernaast is dat de richting van de rode pijl: 50 graden. Dat getal vul je in in het blauwe blokje hier linksonder. 7
Gebruik deze blokjes: 13. Na de start moet Scratch-kat steeds weer een stap nemen en ondertussen controleren of ze niet de groene rand raakt. Als dat het geval is, moet ze «game over» zeggen en stoppen met racen. 12. Nu gaan we aan de slag met de race-code met bovenstaande blokjes. Lees hiernaast de info en bedenk hoe je de blokjes moet stapelen. 14. Kies de goede kleur: dat doe je door eerst op het gekleurde vierkantje te klikken en daarna op het gras. Dan krijgt het vierkantje in het blauwe blok de kleur van het gras. Test nu het race-script uit door op de «s»-toets te drukken. Als het goed is, gaat je kat racen maar eindigt die wel vrij snel in het gras. Je kunt immers nog niet sturen. 8
Gebruik de volgende blokken: Verander de draairichting: 50 15. Geef Scratch-kat nu een script om te sturen. Laat haar een beetje naar links draaien als de speler de -toets indrukt en met de -toets naar rechts. 35 Draaihoek 65 Tip: druk op de «s» om te oefen met sturen als dit script klaar is. Als Scratch-kat -15 graden draait, draait zij tegen de klok in. Als Scratch-kat +15 graden draait, draait zij met de klok mee. 9
Gebruik nu deze blokken: 17. Geef Scratch-kat nu een rode neus (teken een rood bolletje) waarmee je kunt controleren of ze de finish al bereikt heeft. Als dat het geval is, moet je haar horen miauwen, moet ze in een tekstballon zeggen «Je hebt gewonnen» en stoppen met racen. 16. Je bent bijna klaar. Je moet de racekat nu alleen nog bij herhaling laten controleren of ze de finish al bereikt heeft. Nu is je spel klaar om te spelen! Start het spel door de «s» in te drukken. Ik heb nog een kleine puzzel voor je. Vertaling en bewerking: Martine Segers Scratch-kat gebruikt het blokje dat controleert of haar neus de finish-lijn raakt? ( ) Waarom gebruiken we niet het blokje dat controleert of Scratch-kat zelf de finish-lijn raakt ( )? Net zoals we met onderstaand blokje controleren of Scratch-kat het gras niet raakt. 10
1. Klik bij de gekleurde blokken op het oranje blok met «Data» erop en daarna op «Maak een variabele». Snelheid 2. Geef de variabele een naam, bijvoorbeeld «snelheid». Hier zijn nog wat tips als je je race-game wilt uitbreiden! Je gebruikt dan variabelen. Dat zijn een soort doosjes met een getal erin dat tijdens het uitvoeren van je code kan veranderen. 3. Laat de variabele «snelheid» nu bepalen hoeveel stappen de kat steeds neemt. Zo kunnen we de speler de snelheid laten veranderen met de pijltjestoetsen (zie 5). De nieuwe variabele is nu zichtbaar zoals hieronder. 4. In het begin van de race maken we de snelheid 1: ). )). 5. Geeft Scratch-kat nu twee nieuwe scripts. Als de speler op de -toets drukt, neemt ze steeds een extra stap ( ) en gaat ze dus sneller. Met de -toets gaat ze juist langzamer: ). 11
1. Maak een nieuwe variabele ( ) om te meten hoe lang de race duurt. 2. In het begin van de race moet de tijdklok op nul staan ( ) en de variable tijd ook ( ). 3. Als Scratch-kat de finish passeert, maak je de variabele tijd gelijk aan de tijdklok-tijd. ( ). Tijd 4. Aan het eind van de race zegt Scratch-kat: Een rondeteller toevoegen, levert een puzzel voor experts op. Zoals het hieronder staat, werkt het niet. Wat is het probleem, en hoe kun je het oplossen? 1. Maak een nieuwe variabele om het aantal rondjes te meten: 1. Maak een variabele voor de beste rondetijd ( ). Beste tijd 2. Als de tijd nog nul is (na het eerste rondje) of de tijd van het laatste rondje is de beste tijd ( ), geef dan de variabele beste tijd de waarde van de huidige tijd mee ( ) en laat Scratch-kat de nieuwe beste tijd vertellen. Vertaling en bewerking: Martine Segers 2. In het begin maak je het aantal rondjes nul: 3. Elke keer als Scratch-kat de finish-lijn raakt, moet de rondeteller een grotere waarde krijgen: Laat Scratch-kat winnen na een bepaald aantal rondjes: 12