I den forrige opplæringen fortsatte du med å jobbe med et prosjekt for å få en krabbe jage en katt rundt skjermen, legge til en tidsbegrensning og holde score.
I denne delen fortsetter vi å jobbe med dette prosjektet. Vi legger til en kringkastingshendelse og bruker den til å utløse skript for andre sprites. Da vil vi gjemme de fleste sprites når spillet er over og vise sluttresultatet.
For å fullføre denne opplæringen må du:
Vi skal jobbe med prosjektet som ble opprettet i den forrige delen av denne serien. Vi bruker eiendommene og skriptene vi har laget så langt, og legger til flere.
Avhengig av om du jobbet sammen med den opplæringen, er det to måter å komme i gang for denne opplæringen:
Alternativt kan du bare fortsette å jobbe i det samme prosjektet du allerede har opprettet. Slik gjør du hver av disse (du trenger bare å gjøre en).
Åpne Skrap og gå til prosjektet du vil duplisere. Pass på at du har klikket på Se innsiden knappen slik at du kan se prosjektets arbeid.
Klikk på i verktøylinjen Fil> Lagre som en kopi:
Skrap vil åpne din nye kopi. Gi nytt navn til det og begynn å jobbe med det.
Logg inn på Skrap og gå til siden for prosjektet mitt på data og variabler.
Klikk på Se innsiden knappen for å se prosjektet:
Klikk nå på Remix knapp. Skrap vil lagre en duplikat av prosjektet mitt som et nytt prosjekt i kontoen din. Gi nytt navn til det, og du er god til å gå!
I denne delen av serien legger du til en kringkaste
melding til prosjektet ditt for å kommunisere internt i prosjektet ditt. Du kan opprette en kringkasting i ett skript når dette skriptet når et bestemt punkt, eller en tilstand som gjelder et sprite er oppfylt, og deretter har noen av de andre sprites (eller scenen) reagert på kringkasting av meldingen. Dette knytter sprites sammen, og gir deg mer omfang når det gjelder å legge til brukerinteraksjoner.
Du vil huske det tidligere da vi la til en sprite med litt tekst i den (sa "Ouch !!") som vi tegnet som en drakt for den sprite. For øyeblikket er sprite sitter ubevisst på scenen og ikke gjør noe. Nå bruker vi en kringkasting for å få det til å gjøre noe.
Men først la oss lage kringkasting.
Klikk på cat sprite og rediger skriptet du allerede har opprettet for det.
Åpne arrangementer blokkerer og drar kringkastingsmelding1
blokkere inn i skriptet, like under endre poengsum med 1
blokkere. Klikk på rullegardinlisten for message1 og klikk på ny melding… . Skriv inn litt tekst som du kan bruke til å definere sendingen din. Denne teksten vil ikke bli sett av brukeren, men du vil bruke den andre steder i prosjektet ditt, så det er fornuftig å kalle det noe meningsfylt. Jeg ringer til min fanget.
Her ser kattens skript ut akkurat nå:
Nå kan vi bruke denne kringkasting til å utløse skript for andre sprites.
Så langt har vi startet alle våre skript med når det grønne flagget klikket
blokkere, noe som betyr at skriptet kjøres automatisk når prosjektet starter. Noen ganger vil du ikke at det skal skje: du vil at et skript skal utløses etter at prosjektet har startet. Det er noen måter å gjøre dette på: Du kan utløse et skript når et sprite eller en tast er trykket, eller når en variabel som høyhet endres. Metoden vi bruker her, starter et skript når sprite mottar en kringkastingsmelding.
Klikk på tekstmeldingen du opprettet tidligere (Sprite2). Begynn med å gi det et bedre navn (ved å klikke på Jeg ikon øverst til venstre og redigering av navnet) -Jeg ringer min au.
Vi vil at denne sprite skal være usynlig for det meste, og vises bare når krabben fanger katten. Så vi lager to skript: den første til å skjule sprite og den andre for å få den til å vises.
Lag dette skriptet for sprite:
når det grønne flagget klikket
gjemme seg
Du finner gjemme seg
blokkere i Utseende blokker. Dette skjuler sprite: nå når du starter prosjektet, vil den forsvinne.
Opprett nå et nytt skript for Ouch sprite:
når jeg blir fanget
gå til katt
vise fram
vent 0,5 sekunder
gjemme seg
Du finner den første sprite i arrangementer blokker, den gå til
blokkere i Bevegelse blokker, den vente
blokkere i Styre delen og vise fram
og gjemme seg
blokkerer inn Utseende.
Da prosjektene dine blir lengre og mer komplekse, kan du oppdage at du vil gi brukeren en følelse av å utvikle seg gjennom et spill eller en animasjon ved å endre bakgrunnen. Her vil vi gjøre det når timeren løper ut og kampen avsluttes.
For å gjøre det må vi:
Vi bruker kringkaste
Begivenhet blokker og også når bakteppe bytter til
hendelsesblokk. La oss begynne med å lage den kringkasting.
Velg Scene og legg til en kringkaste
blokkere til slutten av skriptet, erstatte stopp alt
blokkere. Jeg ringer denne kringkasting spillet er slutt.
Lag nå et ekstra bakteppe for scenen på samme måte som du opprettet bakgrunner tidligere i denne serien. Velg Scene, Klikk på bakgrunner kategorien, og importer, tegne eller velg et bakgrunn fra biblioteket. Jeg velger Circles bakteppe fra biblioteket.
Den nye bakgrunnen vil nå vises, og den opprinnelige vil forsvinne - ikke panikk! Vi gjør at den opprinnelige vises når prosjektet lanseres og den nye vises når spillet er ferdig.
Nå kan du sannsynligvis finne ut hvordan du får den første bakgrunnen når prosjektet lanseres. Bare dra bytt bakteppe til
blokkere fra Utseende blokkerer til scriptet for scenen, rett under når det grønne flagget klikket
blokkere og over sett score til 0
blokkere. I rullegardinmenyen i den aktuelle blokken velger du strand malibu.
Nå når du kjører prosjektet, vil bakgrunnen skifte tilbake til den du er kjent med:
For å endre bakteppe når spillet avsluttes, opprett et nytt skript for scenen:
når jeg blir fanget
bytt bakteppe til sirkler
Ditt scenen vil nå ha to skript:
Nå når du kjører prosjektet, vil bakgrunnen endres når spillet avsluttes, men spillet vil ikke ende opp. La oss fikse det.
Når kampen slutter, vil vi at krabbe, sjøstjerne og ouch sprites forsvinner. Vi må derfor opprette et identisk skript for hver av disse spidene, som vil bli utløst av sendingen. Den gode nyheten er at du kan lage skriptet en gang, og deretter kopiere det til hver av sprites.
Start med krabbe sprite. Lag dette skriptet for det:
når jeg mottar spill over
gjemme seg
Kopiér nå det skriptet til hver av de ouch og sjøstjerner sprites ved å dra skriptet fra scripts rutenett for krabbe sprite på hver av sprites under hovedstadiet.
Nå når du spiller spillet, vil dine sprites forsvinne når kampen slutter, men de kommer ikke opp igjen når du spiller spillet igjen. Så du må få dem til å vises når prosjektet starter.
For hver av krabbe og sjøstjerner sprites, legg til en vise fram
blokkere til skriptet som begynner med når det grønne flagget klikket
, rett i begynnelsen. Ikke gjør dette for å få det som det bare vises når krabben og katten rører. Krabbe sprite for eksempel vil nå se slik ut:
Nå når du spiller spillet, vil sprites vises i begynnelsen og forsvinne på slutten. Det eneste som ikke fungerer nå, er katten sprite, som fortsatt beveger seg rundt. Vi vil ikke at den skal gjøre det, så vi vil redigere eksisterende skript for katten.
Katten har for tiden en for alltid
blokk som styrer bevegelsen og poengsummen. Erstatt det for alltid
blokkere med a gjenta til
blokkere, sørg for at alle de samme blokkene fortsatt er inne i gjenta til
blokkere som var inne i for alltid
blokkere. Du kan finne det lettere å dra for alltid
blokkere unna skriptet på scripts ruten, dra den gjenta til
blokkere i posisjon, og dra deretter blokkene fra innsiden av for alltid
blokkere inne i gjenta til
blokkere. Slett deretter for alltid
blokkere.
I rommet i gjenta til
blokkere, vi kan ikke bruke a når jeg mottar
blokkere, da de er laget for å starte skriptene. I stedet bruker vi en operatør. Dra =
blokkere inn i det rommet, dra Timer
variabel til det første rommet, og skriv inn 0 i den andre plassen slik at blokken leser Gjenta til Timer = 0
.
Kjør nå spillet, og når tiden stopper, vil katten fortsatt være synlig, men vil være stille.
La oss få katten fortelle brukeren deres poengsum. Opprett et nytt skript for katten sprite som følger:
når bakteppe bytter til sirkler
si bli med deg scoret score
Å lage den andre blokken er litt komplisert. Du må dra den si hei!
blokkere til skriptet, og dra deretter bli med
blokkere fra operatører til rommet der det står Hallo! Skriv deretter 'Du scoret' i det første rommet i delingsblokken, og dra Score
variabel til andre plass. Pass på at du legger til et mellomrom på slutten av teksten. Skriptet ser slik ut:
Nå når du kjører spillet, vil katten dukke opp på egen hånd på slutten og fortelle deg poengsummen din.
Ved å legge til hendelser i prosjektene dine, kan du få ting til å skje når prosjektet utvikler seg som svar på brukerinnganger, skript som når et bestemt punkt, eller verdien av en variabel endrer seg. I denne opplæringen har du lært hvordan du bruker hendelser for å endre bakgrunnen når timeren teller ned til null, og viser brukerens poengsum.
Hvis du har lyst på en utfordring, hvorfor ikke legge til noen operatører i sprite du opprettet som forteller brukeren deres poengsum. Kanskje du kan bruke en hvis
blokkere for å oppdage verdien av Score
verdifulle og få katten si "godt gjort!" hvis brukeren scorer mer enn en viss mengde, eller "bedre hell neste gang!" hvis de har lav score.
I neste del av denne serien fortsetter vi å lage animerte effekter ved hjelp av bakgrunner. Vi vil gjøre bruk av de dupliserte bakgrunnene vi opprettet rett i begynnelsen av serien for å lage en zooming i kraft.