logo CoderDojo

Scratch - Videosensing

We gaan aan de slag met Scratch en video sensing.

Je hebt een computer nodig met een webcam (ingebouwd of los).

Je kunt in Scratch programma’s schrijven die reageren wat er gebeurt op wat de webcam “ziet”, zoals de kleur van wat ‘ie ziet. Daar zijn allerlei spelletjes mee te verzinnen. Hieronder staan wat bouwblokken en ideeën die je kunt gebruiken voor je eigen spel.


Video sensing

Ga naar https://scratch.mit.edu/ en klik op ‘Aan de slag’.

Begin met het aanzetten van de webcam. De blokken die je hiervoor nodig hebt moet je eerst toevoegen door linksonder te klikken op de knop “Voeg een uitbreiding toe” en daarna “Video” te kiezen. Scratch zal je nu waarschijnlijk vragen om toestemming om de webcam te gebruiken.

Door nu op het blok “zet video aan” te klikken zal je op de achtergrond van Scratch zien wat de webcam ziet. Het is nog een beetje onduidelijk, als je het blok “zet video transparantie” instelt op 0 en erop klikt zie je het beter.


Kleur instellen

Om ervoor te zorgen dat Scratch reageert op de kleur die de webcam ziet moet je deze eerst instellen. Zet eerst de webcam aan in Scratch Dit doe je door op de kleur van het blok “raak ik kleur” te klikken en daarna op het icoon in de rode cirkel. Je kunt nu een kleur in het beeld van de webcam aanklikken.

kleur_instellen

Bouwblokken

Sprite beweegt tegen een kleur aan

Dit bouwblok is het makkelijkst te gebruiken als je een losse webcam hebt die je op tafel kunt richten. In dit geval liggen de gekleurde voorwerpen (papiertjes, legoblokjes, M&M’s, noem maar op) en beweegt een sprite tegen de voorwerpen aan. Je kunt dan programmeren wat er moet gebeuren als de sprite een kleur raakt: hij verandert van uiterlijk, er klinkt een geluid, je poppetje is “af”, enzovoorts.

sprite_raakt_kleur

Kleur beweegt tegen een sprite aan

In dit geval gaat het er om dat een kleur op een bepaalde plek op het scherm verschijnt en Scratch daarop reageert.

Om dat voor elkaar te krijgen doe je eigenlijk hetzelfde als in het vorige voorbeeld - bijvoorbeeld “als deze sprite kleur rood raakt”, maar zit de sprite vast op één plek, bijvoorbeeld het linker- of rechterdeel van het scherm.

Het kan voor je spelletje handig zijn om deze sprites te verbergen. Dit kun je doen door eerst op een sprite te klikken en daarna op het blok “verberg”.


Mogelijke spelletjes

Speed color: wie houdt het snelst de goede kleur in beeld

Kleurenmuziek

Gekleurde platformen


Belangrijk: sla je programma’s steeds op zodat je geen werk verliest. Je kunt bovenaan in Scratch klikken op ‘Bestand’ en dan ‘Opslaan op je computer’. Je kunt opgeslagen programma’s ook weer uploaden via hetzelfde menu.



Platform spel

Het maken van een vloeiende beweging

In Scratch kun je bewegen van links naar rechts, en van boven naar onder. De plek van links naar rechts wordt bepaald door de waarde van x, en die van boven naar onder door y. Deze waarden noem je de coördinaten.

coördinaten

De makkelijkste manier om dit te doen is door een knop aan een verandering in de waarde van x en y te verbinden: beweging1

Dit kun je ook voor beweging de andere kant op, naar boven en beneden doen. Deze beweging is nogal schokkerig. Je kunt deze beweging op meerdere manieren vloeiender maken. Een manier is de volgende. Als eerste moet je hiervoor de waarde van x niet meteen als getal intypen, maar dit doen via een variabele die de snelheid van de sprite bepaalt (zie het menu ‘variabelen’):

beweging2

De volgende stap is om deze stap in een herhaal lus te zetten, daardoor blijft de snelheid veranderen zo lang je de knop ingedrukt houdt:

beweging4

Wat er nu gebeurt is dat de sprite na het loslaten van de knop net zo snel blijft gaan. Je moet dus instellen dat de snelheid omlaag gaat als je de knop niet indrukt:

beweging5

Je zult nu zien dat de snelheid na een tijdje onder de 0 gaat en de sprite dus de andere kant op zal gaan bewegen. O dit te voorkomen moet een je een voorwaarde toevoegen dat de snelheid niet onder de 0 mag komen.

beweging6

Beweging naar links kun je op dezelfde manier programmeren, uiteindelijk ziet het er dan zo uit:

beweging_links_rechts

Je kunt de beweging nog verder verbeteren door een maximale snelheid te bepalen en de snelheid alleen te verhogen als die nog niet is bereikt. Je voegt dan een extra voorwaarde toe:

beweging7

Natuurlijk hoort springen (en daarna weer vallen) ook bij een platform spel. Een manier om dit voor elkaar te krijgen zie je in het blok hieronder, waarbij Het blok hieronder een paar dingen doet:

beweging_boven_onder




Licentie

Deze instructies worden, net als alle andere instructies van CoderDojo Nijmegen, aangeboden onder een Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Licentie.

Creative Commons License