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.
För att slutföra denna handledning behöver du:
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:
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).
Ö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.
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å!
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.
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 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 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.
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:
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.
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 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.
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.
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.
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.
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.