Sprites in actie
We gaan interactieve animatie met behulp van gebeurtenissen maken die op getimede gebeurtenissen en op gebruikersinvoer reageert.
We gaan interactieve animatie met behulp van gebeurtenissen maken die op getimede gebeurtenissen en op gebruikersinvoer reageert.
In deze les voor het opbouwen van vaardigheden zullen de leerlingen een reeks programmeerniveaus op de platform doorlopen en eindigen met een open "vrij spelen"-taak waarin ze kunnen bouwen wat ze maar willen. Ze zullen programma's schrijven die reageren op getimede gebeurtenissen en gebruikersinvoer.
A. De sprite draait gewoon naar rechts.
B. De sprite zal gewoon naar het oosten gaan.
C. De sprite draait en beweegt tegelijkertijd.
D. De sprite zal eerst draaien en dan later bewegen.
In deze les gaan we nog meer dingen doen met sprites en gedrag.
Laten we eerst opfrissen wat je in de laatste les hebt geleerd. Maak een sprite. Stel de grootte van de sprite in. Begin met elk gedrag.
Gebeurtenissen maken het makkelijker om te veranderen wat er in de loop van de tijd gebeurt terwijl je programma wordt uitgevoerd. Gebruik het gebeurtenisblok [at ??? seconds] (op ? seconden) om de sprite een nieuw gedrag te laten beginnen nadat er enige tijd is verstreken.
Voeg een gebeurtenisblok [at 3 seconds] toe aan je werkruimte.
Verbind een [sprite begins] blok onder dit gebeurtenisblok.
De sprite zou na 3 seconden een tweede gedrag moeten vertonen.
Events maken het mogelijk om programma's interactief te zijn. Gebruik de gebeurtenisblok om de grootte, positie of de rotatie van de sprite te wijzigen wanneer de gebruiker op een toets drukt.
Voeg een [when key pressed]([wanneer omhoog geperst]) gebeurtenisblok toe aan je werkruimte.
Koppel onder dit gebeurtenis een [change]([wijzig ??? grootte met ??]) blok uit de categorie Sprites.
Druk op de pijltoetsen op je scherm of toetsenbord nadat je op 'Start' hebt ingedrukt.
Als je van het ene gedrag naar het andere wilt overschakelen, moet je het oude gedrag stoppen en tegelijkertijd met het nieuwe gedrag beginnen. Je kunt een nieuw blok [sprite ??? stopt] gebruiken om sprites hun huidige gedrag te laten stoppen. Je moet een gedrag aan dit blok koppelen, zoals [moving east] (naar het oosten gaan).
Voer de code uit en kijk wat er gebeurt.
Voeg gedrag toe aan elk [stops] en [begins] blok om de sprite binnen 2 seconden van oost naar west te laten bewegen.
Sommige gedragingen doen tegenovergestelde dingen, zoals [moving east]/[moving west], [growing]/[shrinking], or [spinning right]/[spinning left] (naar het oosten/westen bewegen, groeien/krimpen of naar rechts/links draaien). Als een sprite twee tegengestelde gedragingen heeft, kan het lijken alsof de sprite helemaal niets doet.
Voer de code uit en kijk wat er na 3 seconden gebeurt.
Voeg een [sprite stops] blok toe onder de gebeurtenis.
Gebruik dit blok om het oude gedrag te stoppen.
De sprite zou nu moeten de ene kant opdraaien en dan de andere kant op.
Dit schip is klaar voor vertrek! Gebruik een gebeurtenisblok [at 8 seconds] om het schip na 8 seconden vooruit te laten gaan.
Voeg een gebeurtenisblok [at 8 seconds] (op 8 seconden) toe aan je werkruimte.
Verbind een [sprite begins] gedragsblok onder dit gebeurtenisblok .
Geef de sprite een gedrag om hem na 8 seconden te "lanceren"[move right] (beweeg naar rechts).
Er zit een fout in deze code.
Voer de code uit om te zien wat er gebeurt.
Klik hieronder om over de bug te lezen.
Wat is het probleem?
Na 2 seconden moet de vogel wegvliegen. In plaats daarvan stopt het gewoon.
Verander de volgorde van de onderstaande code [at 2 seconds] zodat de sprite alleen het oude gedrag stopt.
Laten we de vliegtuig sprite naar links laten draaien als je op de ene toets drukt, en naar rechts als je op de andere toets drukt. Herinner je je het [sprite ??? stopt] blok nog?
Lees onderstaande code goed door. Voer de code uit en druk op beide pijlen om te zien wat er gebeurt.
Wat is het probleem?
Wanneer je op de eerste pijltoets drukt, draait het vliegtuig, maar het programma stopt met werken wanneer je op de tweede pijltoets drukt.
Voeg een [sprite stops] blok toe onder elke gebeurtenis. Gebruik dit blok om het tegenovergestelde gedrag te stoppen.
De sprite zou nu in beide richtingen moeten draaien wanneer je op elke pijltoets drukt.
Laten we de sprite laten krimpen als je op de ene toets drukt, en groeien als je op de andere toets drukt. Herinner je je het [sprite ??? stopt] blok nog?
Lees onderstaande code goed door.
Voer de code uit en druk op beide pijlen om te zien wat er gebeurt.
Wat is het probleem?
Wanneer je op de tweede pijltoets drukt, lijkt de sprite niet meer te reageren.
Voeg een [sprite stops] blok toe onder elke gebeurtenisblok.
Gebruik dit blok om het tegenovergestelde gedrag te stoppen.
De sprite zou nu moeten krimpen of groeien wanneer je op elke van de pijltoetsen drukt.
Het blok [when/while key pressed] heeft twee belangrijke opties. Het kan worden geactiveerd "wanneer" een toets voor het eerst wordt ingedrukt (een keer) of "terwijl" de toets wordt ingedrukt (steeds opnieuw). Als je dit blok instelt op "terwijl" kunt je je interactieve animaties sneller en vloeiender maken. Gebruik het [when/while key pressed] gebeurtenisblok om herhaaldelijk de grootte van de sprite te veranderen terwijl de gebruiker houdt op een toets ingedrukt.
Voeg een [key pressed]([??? omhoog geperst]) gebeurtenisblok toe aan je werkruimte. Stel het in op "wanneer" of op "terwijl".
Verbind een [change size]([growing] of [shrinking]) gebeurtenisblok onder die andere gebeurtenisblok.
Druk op de pijltoetsen op je scherm of toetsenbord nadat je op 'Start' hebt gedrukt.
Extra uitdaging: maak de sprite groter als je op "omhoog" drukt en kleiner als je op "omlaag" drukt.
Het blok [when/while key pressed] heeft twee belangrijke opties. Het kan worden geactiveerd "wanneer" een toets voor het eerst wordt ingedrukt (een keer) of "terwijl" de toets is ingedrukt (steeds opnieuw). Als je dit blok instelt op "terwijl" kun je je interactieve animaties sneller en vloeiender maken. Het gebeurtenisblok [when key pressed ] (wanneer toets wordt ingedrukt), zorgt ervoor dat de sprite met de toetsen beweegt, maar het voelt traag en onhandig aan.
Start het programma en druk op de pijltjestoetsen om te zien hoe de sprite beweegt.
Verander elk blok [wanneer ____ geperst] in [terwijl ____ geperst] om de beweging van de sprite sneller en soepeler te maken.
Dit is het project dat je tijdens de laatste les hebt gemaakt. Met gebeurtenissen kun je nu verschillende dingen laten gebeuren in de tijd terwijl of wanneer de gebruiker op een toets drukt.
Voeg gebeurtenisblokken toe aan je programma.
Voeg code toe onder elke gebeurtenis om je sprites, hun eigenschappen of hun gedrag te wijzigen.