Gör dina scratch-animationer mer reaktiva med händelser

Vad du ska skapa

I den tidigare handledningen fortsatte du med att arbeta på ett projekt för att göra en krabba jaga en katt runt skärmen, lägga till en tidsgräns och hålla poäng.

I den här delen fortsätter vi arbetet med projektet. Vi lägger till en sändningshändelse och använder den för att utlösa skript för andra sprites. Därefter gömmer vi de flesta spritesna när spelet är över och visar slutresultatet.

Vad du behöver

För att slutföra denna handledning behöver du:

  • ett gratis konto med Scratch
  • en webbläsare med tillgång till Scratch (jag rekommenderar att du använder en modern webbläsare som Chrome, Firefox, Safari eller Opera för bästa upplevelse)

Komma igång

Vi kommer att arbeta med projektet som skapades i den tidigare delen av denna serie. Vi använder de tillgångar och skript vi har skapat hittills och lägger till mer.

Beroende på om du arbetade med den handledningen finns det två sätt att komma igång för den här handledningen:

  • Öppna projektet du skapade för den sista handledningen och gör en kopia av det.
  • Remix det projekt jag skapade för att stödja den sista handledningen.

Alternativt kan du bara fortsätta arbeta i samma projekt som du redan skapat. Så här gör du var och en av dem (du behöver bara göra en).

Duplicera ditt eget projekt

Öppna Skrapa och gå till det projekt du vill duplicera. Se till att du har klickat på Se Inside knappen så att du kan se projektets arbete.

Klicka på i verktygsfältet Arkiv> Spara som en kopia:

Skrapa öppnar din nya kopia. Byt namn på det och börja arbeta med det.

Remixing My Project

Logga in på Skrapa och gå till sidan för mitt projekt på data och variabler.

Klicka på Se Inside knappen för att se projektet:

Klicka nu på remix knapp. Scratch kommer att spara en kopia av mitt projekt som ett nytt projekt i ditt konto. Byt namn på det och du är bra att gå!

Skapa en sändningshändelse för att skicka meddelanden

I den här delen av serien lägger du till en utsända meddelande till ditt projekt för att kommunicera internt inom ditt projekt. Du kan skapa en sändning i ett skript när det skriptet når en viss punkt, eller ett villkor som gäller en sprite är uppfyllt, och sedan har någon av de andra spritesna (eller scenen) reagerat på sändningen av meddelandet. Detta länkar dina sprites tillsammans och ger dig större omfattning när det gäller att lägga till användarinteraktioner.

Du kommer ihåg det tidigare vi lade till en sprite med lite text i den (säger "Ouch !!") som vi ritade som en kostym för den sprite. För tillfället är sprite sitter orörlig på scenen och inte gör någonting. Nu använder vi en sändning för att få det att göra någonting.

Men först låt oss skapa sändningen.

Klicka på kattsprite och redigera det skript du redan har skapat för det.

Öppna evenemang blockera och dra sändningsmeddelande1 blockera i manuset, omedelbart under ändra poäng med 1 blockera. Klicka på rullgardinsmenyn för message1 och klicka på nytt meddelande… . Skriv in lite text som du kan använda för att definiera din sändning. Denna text kommer inte att ses av användaren men du använder den på andra håll i ditt projekt, så det är vettigt att kalla det lite meningsfullt. Jag ringer min fångad.

Så här ser kattens skript ut nu:

Nu kan vi använda den sändningen för att utlösa skript för andra sprites.

Använda en sändningshändelse för att starta ett skript

Hittills har vi startat alla våra skript med när den gröna flaggan klickade block, vilket innebär att manuset automatiskt körs när projektet startar. Ibland vill du inte att det ska hända: du vill att ett skript ska utlösas efter att projektet har börjat. Det finns några sätt att göra detta: Du kan utlösa ett skript när en sprite eller en tangent trycks in, eller när en variabel som ljudstyrka ändras. Metoden vi använder här börjar ett manus när spritet mottar ett broadcastmeddelande.

Klicka på texten som du skapade tidigare (Sprite2). Börja med att ge det ett bättre namn (genom att klicka på jag ikonen till vänster och redigera namnet) -Jag ringer min Aj.

Vi vill att denna sprite är osynlig för det mesta, och visas bara när krabben fångar katten. Så vi ska skapa två skript: den första som gömmer spritet och den andra för att få det att visas.

Skapa ett script för att göra sprite försvinn

Skapa detta skript för sprite:

  • när den gröna flaggan klickade
  • Dölj

Du hittar Dölj blockera i Utseende block. Detta döljer sprite: nu när du startar projektet kommer det att försvinna.

Skapa ett skript för att göra spritet igen

Skapa nu ett andra skript för Ouch sprite:

  • när jag får fångad
  • gå till katt
  • show
  • vänta 0,5 sekunder
  • Dölj

Du hittar den första spritet i evenemang block, the gå till blockera i Rörelse block, the vänta blockera i Kontrollera avsnitt och show och Dölj block i Utseende.

Använda händelser med bakgrunder

Eftersom dina projekt blir längre och mer komplexa kan det hända att du vill ge användaren en känsla av att utvecklas genom ett spel eller en animering genom att ändra bakgrunden. Här gör vi det när timern löper ut och spelet avslutas.

För att göra det behöver vi:

  • Lägg till en sändning när timern löper ut
  • skapa en ny bakgrund som ska visas i slutet av spelet
  • ändra bakgrunden när timern löper ut
  • göm de befintliga spritesna när spelet slutar
  • berätta för användaren deras poäng när spelet slutar

Vi använder utsända Händelse block och även när bakgrunden växlar till händelseblock. Låt oss börja med att skapa den sändningen.

Skapa en sändning

Välj Skede och lägg till en utsända blockera till slutet av sitt manus, ersätta stoppa allt blockera. Jag ringer den här sändningen spelet över.

Skapa en ny bakgrund

Skapa nu en extra bakgrund för scenen på samma sätt som du skapade bakgrunder tidigare i serien. Välj Skede, Klicka på bakgrunder flik och importera, rita eller välj en bakgrund från biblioteket. Jag väljer den cirklar bakgrund från biblioteket.

Den nya bakgrunden kommer nu att visas och din ursprungliga kommer att försvinna - var inte panik! Vi gör att originalet visas när projektet startas och det nya visas när spelet avslutas.

Ändra bakgrunden vid rätt tidpunkt

Nu kan du förmodligen träna hur man får den första bakgrunden att visas när projektet lanseras. Dra helt enkelt byta bakgrund till blockera från Utseende blockerar manuset för scenen, precis under när den gröna flaggan klickade blockera och över Ange poäng till 0 blockera. I rullgardinsmenyn i det blocket väljer du strand malibu.

Nu när du kör projektet, kommer bakgrunden att växla tillbaka till den du är bekant med:

För att ändra bakgrunden när spelet avslutas, skapa ett nytt skript för scenen:

  • när jag får fångad
  • byta bakgrund till cirklar

Din scen kommer nu att ha två skript:

Nu när du kör ditt projekt kommer bakgrunden att ändras när spelet slutar, men spelet kommer inte att sluta. Låt oss fixa det.

Hiding Sprites När spelet slutar (och visar dem när det börjar)

När spelet slutar vill vi att krabben, sjöstjärna och ouch sprites försvinner. Vi behöver därför skapa ett identiskt manus för var och en av dessa spider, vilket kommer att utlösas av sändningen. Den goda nyheten är att du kan skapa skriptet en gång och kopiera det till var och en av spritesna.

Börja med krabba sprite. Skapa det här skriptet för det:

  • när jag tar emot spelet över
  • Dölj

Kopiera nu det här skriptet till var och en av de ouch och sjöstjärna sprites genom att dra skriptet från skript ruta för krabba sprite på varje sprites under huvudstadiet.

Nu när du spelar spelet kommer dina sprites att försvinna när matchen slutar - men de kommer inte upp igen när du spelar spelet igen. Så du måste få dem att visas när projektet startar.

För varje krabba och sjöstjärna sprites, lägg till en show blockera till det manus som börjar med när den gröna flaggan klickade, rätt i början. Gör inte det här för ouch sprite som det bara visas när krabben och katten röra. Krabban sprite till exempel kommer nu att se ut så här:

Nu när du spelar spelet kommer spritesna att visas i början och försvinna i slutet. Det enda som inte fungerar nu är katten sprite, som fortfarande rör sig runt. Vi vill inte att det ska göra så vi ska redigera det existerande skriptet för katten.

Katten har för närvarande en evigt block som styr dess rörelse och poängen. Ersätt det evigt blockera med a upprepa tills blockera, se till att alla samma block fortfarande finns inne i upprepa tills blockera som var inne i evigt blockera. Det kan vara lättare att dra evigt blockera bort från manuset på skript ruta, dra upprepa tills blockera i position och dra sedan blocken inifrån evigt blockera inuti upprepa tills blockera. Ta sedan bort evigt blockera.

I utrymmet i upprepa tills block, vi kan inte använda a när jag får blockera, eftersom de är utformade för att starta skript. I stället använder vi en operatör. Dra = blockera in i det här rummet, dra Timer variabel till det första utrymmet och skriv 0 i det andra utrymmet så läser blocket Upprepa tills Timer = 0.

Kör nu spelet och när klockan stannar kommer katten fortfarande att vara synlig men kommer att vara still.

Berätta användaren deras poäng när spelet slutar

Låt oss få katten berätta för användaren deras poäng. Skapa ett nytt skript för kattsprite som följer:

  • när bakgrunden växlar till cirklar
  • säg gå med dig gjorde poäng

Att skapa det andra blocket är lite komplicerat. Du måste dra den Säg hej! blockera till skriptet och dra sedan Ansluta sig blockera från operatörer till det utrymme där det står Hej! Skriv sedan "Du gjorde" i det första utrymmet i anslutningsblocket och dra sedan Göra variabel till det andra utrymmet. Se till att du lägger till ett mellanslag i slutet av din text. Skriptet ser ut så här:

Nu när du kör spelet, kommer katten att visas på egen hand i slutet och berätta din poäng.

Sammanfattning

Genom att lägga till händelser i dina projekt kan du få saker att hända när projektet fortskrider, som svar på användarinmatningar, skript som når en viss punkt eller värdet av en variabel ändras. I den här handledningen har du lärt dig hur du använder händelser för att ändra bakgrunden när timern räknas ner till noll och visa användarens poäng.

Om du vill ha en utmaning, varför inte lägga till några operatörer i den sprite du skapade som berättar användaren deras poäng. Kanske kan du använda en om blockera för att upptäcka värdet av Göra värdefullt och få katten att säga "Bra gjort!" om användaren värderar mer än en viss mängd, eller "bättre tur nästa gång!" om de har en låg poäng.

I nästa del av denna serie fortsätter vi att skapa animerade effekter med bakgrund. Vi använder de dubbla bakgrunderna som vi skapade precis i början av serien för att skapa en zoomning i kraft.