Gebeurtenissen

Iets doen als op de groene vlag wordt geklikt of als er op een toets wordt gedrukt? Dat doe je met de bruine blokken onder het kopje gebeurtenissen. Kort gezegd bepaal je daarmee wanneer er iets gebeurt. Ook kun je met deze blokken signalen naar andere sprites verzenden en signalen "opvangen".

Computers, en ook Scratch-programma's doen nooit iets uit zichzelf. Er is altijd een gebeurtenis die het programma, of een deel ervan, op gang brengt. De blokken die je daarvoor kunt gebruiken lijken een beetje op een petje: ze hebben een bolle kant linksboven en je kunt alleen aan de onderkant andere blokken vastklikken. Dit zijn dus de blokken waarmee je een stuk script van start laat gaan.

Start project

wanneer groene vlag wordt aangeklikt

Dit blok start het computerprogramma. Als je dit blok boven een aantal andere blokken plaatst, gaat de computer de opdrachten die op die blokken staan één voor één uitvoeren op het moment dat er op de groene vlag wordt geklikt.

Bij elke sprite kun je meerdere van deze blokken gebruiken. Maar let op: de computer kan niet overal tegelijk beginnen met opdrachten uitvoeren en in Scratch weet je niet wat hij als eerste gaat doen. Vaak is dat helemaal niet erg. Maar soms wel. Dingen die per se achter elkaar moeten gebeuren, kun je daarom het best onder hetzelfde blok "wanneer groene vlag wordt aangeklikt" plaatsen indien mogelijk.

wanneer [spatiebalk v] wordt ingedrukt

Doe iets als de spatiebalk wordt ingedrukt. Dat kun je met dit blok regelen. Je kunt hiermee de computer laten reageren als de gebruiker van je computerprogramma op een toets op het toetsenbord drukt. Met dit blok kun je het script dat eronder staat meteen daarna van start laten gaan.

Als je op het zwarte driehoekje klikt, verschijnt er een uitklapmenu. Via dit menu kun je alle letters, cijfers, de pijltjestoetsen en de spatiebalk selecteren.

Nieuw is de keuze "willekeurig". Als je die optie gebruikt, maakt het niet uit welke toets wordt ingedrukt. Zodra de spatiebalk of een letter, cijfer, of pijltjestoets wordt ingedrukt, gaat het script dat onder dit blok hangt van start.


Klikken op de sprite in het speelveld

wanneer op deze sprite wordt geklikt

Dit blok gaat het script eronder uitvoeren zodra er op de bijbehorende sprite wordt geklikt.


Veranderende achtergrond

wanneer achtergrond verandert naar [achtergrond1 v]

Hiermee kun je een script van start laten gaan zodra de achtergrond verandert. Je kunt via het zwarte driehoekje de gewenste achtergrond selecteren.


Geluidsterkte, tijdklok en videobeweging

wanneer [geluidssterkte v] > (10)

Dit blok houdt de tijdklok binnen het project in de gaten en start het script eronder als die tijdklok boven een bepaalde waarde komt. Je kunt ook de optie geluidsterkte selecteren, en dan houdt dit blok de sterkte van het geluid in de gaten dat je microfoon opvangt. Hetzelfde geldt voor videobeweging.


Signalen

Signalen zijn een handig hulpmiddel om de computer stukjes code op het juiste moment te laten uitvoeren. Met signalen kun je voor de gebruiker van je programma onzichtbare berichtjes sturen, bijvoorbeeld van de ene naar de andere sprite. Maar het kan ook handig zijn om binnen de code van één sprite signalen te gebruiken. Op die manier kun je twee stukken code tegelijk van start laten gaan.

wanneer ik signaal [bericht1 v] ontvang

Dit blok voert de code die eronder hangt uit, op het moment dat het signaal met dezelfde naam ergens verstuurd is binnen het Scratch-project.

Om een signaal een unieke naam te geven, klik je op "nieuw bericht". Dan verschijnt er een venster waarin je je signaal een naam kunt geven, bijvoorbeeld "game over".

zend signaal [bericht1 v]

Met dit blok verstuur je een signaal. Je kunt op dezelfde manier als hierboven beschreven, het signaal een naam geven.

Na het zenden van het signaal, gaat de computer meteen verder met de code die eronder staat.

zend signaal [bericht1 v] en wacht

Dit blok zendt een signaal en wacht dan eerst tot de code die onder "wanneer ik signaal (naam signaal) ontvang" hangt helemaal uitgevoerd is. Pas daarna gaat de computer met de opdrachten die onder dit blok staan aan de slag.

Je kunt signaalblokken ook gebruiken om code die je vaker wilt gebruiken handig bij elkaar op te slaan. Een makkelijke manier van zelf snel een "eigen blok" te maken. Als voorbeeld een spel waarbij je bij bepaalde gebeurtenissen opnieuw moet beginnen. Dan zou je alles wat hoort bij opnieuw beginnen kunnen bewaren als

wanneer ik signaal [Naar de start v] ontvang
ga naar x: (0) y: (0)
richt naar (90) graden

Dat combineer je dan met

wanneer groene vlag wordt aangeklikt
zend signaal [Naar de start v]

en bijvoorbeeld

als <raak ik (iets dat niet geraakt mag worden)> dan
zend signaal [Naar de start v]
end

Wanneer gebruik je signalen?

text
Als de meloen de bloem raakt, verandert de achtergrond en gaat de meloen weer naar zijn plaats.

Je gebruikt signalen als je op een andere manier niet duidelijk kan maken dat een sprite iets moet doen. Je kunt signalen bijvoorbeeld in een doolhof gebruiken. Als de speler de finish aanraakt, laat je de computer een signaal zenden. Vervolgens ontvangt de achtergrond het signaal en verandert de computer de achtergrond naar de volgende achtergrond. Dit kun je gebruiken om een nieuw level te starten.

Het is ook een leuke omweg. Je kunt er voor kiezen om de computer de opdracht te geven dat wanneer de groene vlag wordt aangeklikt, een sprite 10 stappen moet nemen. Een moeilijkere versie is met de signalen. De ene sprite zendt het signaal, de andere sprite pikt het signaal op en neemt 10 stappen.


Escape the room

'Escape the room' is een leuk spelletje om te maken om signalen mee te oefenen. Bij dit spel heb je namelijk veel signalen nodig. Als bijvoorbeeld de code goed is ingetypt, moet de kluis opengaan. Of de deur moet opengaan als de sleutel het sleutelgat raakt. Probeer het zelf eens!

Hier zijn een paar escape the rooms om de code van te bekijken en/of om te spelen:

https://scratch.mit.edu/projects/16215228/

https://scratch.mit.edu/projects/106725848/

https://scratch.mit.edu/projects/289731/

Suggesties om te remixen

Je kunt bijvoorbeeld dit project remixen:

https://scratch.mit.edu/projects/88960043/

Kun jij ervoor zorgen dat de bel op tijd stopt door een signaal te gebruiken?

Of deze:

https://scratch.mit.edu/projects/91524144/

Kun jij een verhaaltje maken over de dino door signalen te gebruiken?

  • Deze pagina is het laatst bewerkt op 29 aug 2016 om 16:38.