Tip:
Highlight text to annotate it
X
>> ZAMYLA CHAN: Hej, och välkommen till Scratch genomgång.
Mitt namn är Zamyla och jag ska vara ledande genomgångar för dig i år.
I CS50, är alla problem set åtföljs av en genomgång.
Under dessa genomgångar ska jag gå över veckans problem set, förklara
begrepp krävs och bryta upp Problemet satt i hanterbara bites.
>> För det första p-set i CS50, faktiskt vi kommer inte komma in i att skriva och
maskinkod grejer riktigt än.
Snarare kommer vi att använda Scratch, en program som tillåter oss att utforska
programmering begrepp i en visuellt och kreativt sätt.
Denna genomgång kommer att undersöka grundläggande begrepp som vi använder
hela CS50, samt servering som en Scratch handledning.
I varje genomgång ska jag visa en uppsättning av verktyg som du kan använda för
problem set.
Från större kurs koncept till färdiga funktioner, det är bra och praktiskt att
vet vad du har innan angripa problemet set.
>> Först, låt oss tala om sprites.
Älvor är centrala för att projekt i grunden.
Varje objekt eller varje tecken, vare sig det är en katt, en hund eller en
boll, kallas en sprite.
Om jag vill ha, säg, två katter i mitt projekt, Jag måste göra två
separata sprites i Scratch, även om de är helt identiska.
>> Varje sprite har tillhörande skript med den specifika spriten.
Skript är vad du tänker att bygga genom att dra
och släppa block.
Skript är instruktioner som fastställa och definiera
hur skriptet fungerar.
>> Nu, sprites är inte bara bilder.
En sprites dräkt bestämmer vad spriten ser ut.
Någon given sprite kan ha mer än en kostym.
Lite senare under den här genomgången jag ska visa dig hur du kan få din
sprite förändring kostymer Under ditt program.
>> För att skapa en sprite i grunden, kan du antingen välja sin ursprungliga kostym för
Scratch: s bibliotek, dra dina egna i Scratch: s inbyggda måla editor,
ladda upp din egen bild, eller ta en bild med datorns kamera.
Alla sprites är placerade på vad vi kallar scenen.
Scenen är som vår duk där sprites kan flytta runt.
>> Även om vi kan ha multiplar sprites, Det kan bara vara en etapp.
Annars, stadier och sprites är ganska liknande av att steget kan
också ha skript.
Skript på scenen är mycket användbara när du inte har ett skript som
inte nödvändigtvis gälla till en specifik sprite.
Kanske det avser flera ränder, eller ingen alls.
>> Det är i allmänhet bra design för att placera din manus på scenen, om de är
allmänt nog och inte gäller till specifika sprites.
Och precis som sprites har dräkter, stadier har bakgrunder som kan förändra
under loppet av ditt program.
Och du kan dra dina egna, ladda upp en bild, ta en bild, eller använda
Scratch bibliotek av bakgrunder.
Både på scenen och sprites kan också spela ljud från Scratch bibliotek, eller
du kan ladda upp och spela in egna.
>> För att starta din Scratch program kommer du måste klicka på den gröna flaggan vid
övre högra hörnet av scenen fönstret.
Men om du inte ansluta något till detta block just här, så ingenting är
faktiskt kommer att hända eftersom din sprites och scenen måste veta
att svara på det fall grön flagg som klickade.
Så du behöver för att fästa blocken till spår vid botten av gröna
flagga, och sedan kommer programmet att exekvera dessa åtgärder när du börjar
ditt program.
>> Nå, vad kommer efter det?
Tja, har Scratch *** block för dig att använda, och du kan
även göra din egen.
Du kommer att se tre flikar, skript, Kostymer och ljud.
Under Skript taggen är kategorier uttalanden.
Uttalanden är enkelt organiseras av färg.
Du måste åtgärder i samband med rörelse, ljud, utseende, och så vidare.
Även om du har andra byggt block runt dina uttalanden, är det
uttalanden som hjälper sprites eller scenen för att göra något, medan
andra block kommer att avgöra när man gör dem.
>> Låt oss säga att du skapar din alldeles första projektet och du bara vill ha det
katt jama under vissa omständigheter.
För att genomföra detta, kan vi ta fördel av Booleans.
Dessa är uttryck som utvärderas antingen sant eller falskt.
I Scratch dessa identifieras av vinklar i slutet av blocken.
Du har en mängd olika typer av Booleans som är musen
trycks ned, likställer 2 plus 2 till 5, är eller användaren trycker
ner en viss tangent på tangentbordet?
>> Nu kan du inte bara använda dessa Booleans ensam.
Du måste kombinera dem med vad vi kallar förhållanden.
Skick block kan hittas i de orange revisionsutlåtandena.
Villkor har lämpligen en liten platshållare som visar formen på
det block som du behöver att sätta i det.
Så beroende på sammanhanget för situation, kan du välja ett booleskt
och placera den i ditt tillstånd.
Och sätta ihop, har du en villkorlig uttalande.
När du sätter uttalanden inuti som blockera dig har en struktur som inrättats
varigenom en gång ett visst villkor är uppfyllt, köra dig då de
uttalanden.
>> En av fördelarna med datorer är den stora kraften och hastigheten vid vilken de
kan utföra repetitiva processer.
I stället för, säg, upprepning av en undervisning om och om och om igen
igen och faktiskt skriva ut det, eller i det här fallet, dra och släppa
och dra och släppa, vad vi kan göra är att kapsla in i en loop.
>> Loopar kan användas för att antingen exekvera saker oändligt med ett evigt loop,
eller för ett visst antal gånger.
Till exempel, upprepa uttalandet, säger Hej, 10 gånger, eller kanske tills en viss
villkoret är sant.
Och med denna Repeat Until blockera dig se att Scratch är bl a att
måste du placera en Boolean in Upprepa tills blocket att göra en
villkorlig uttalande.
>> Nu vet vi att vi kan kapsla repetitiva processer inuti loopar,
så att du kan se varför något liknande detta kanske inte vara perfekt.
Det är super lång, gör det bara samma sak om och om igen
igen, 10 gånger faktiskt.
Det rör sig 10 steg, säger hej, flytta 10 steg, säger hej.
Men med hjälp av slingor vi kan städa upp detta lite.
Se hur det är mycket bättre.
Det är kortare, det är mindre och det fullbordar samma sak.
>> Går vidare till variabler.
Variabler är i huvudsak behållare för värden.
I Scratch, dessa typer av värden kan antingen ord eller de kan vara
siffror, värden som vi har kontroll över.
I denna första blocket har vi en text variabel som innehåller
värde, Hello, World.
I det andra exemplet, det antas att Vi har redan en variabel som heter
Räknare och vi uppräkning det med tre.
Och sedan, i det sista exemplet, ser vi ett exempel på variabler som används
insidan av förhållanden.
I detta block, ber vi om variabeln Counter är mindre än noll.
>> Nu, när du skapar en variabel du har att avgöra om du gör det
variabel tillgänglig för alla de sprites i din Scratch program, eller
bara för de utvalda specifika sprites när du gör variabeln.
Och detta är en mycket viktig beslut att fatta.
Det handlar om vilket utrymme du vill att variabeln ska ha.
>> Ett exempel på lokal räckvidd skulle vara en variabel bara för en specifik sprite,
vilket innebär att endast den sprite skulle kunna se eller ändra det.
Om du bestämmer en variabel med global utrymme genom att välja för alla
sprites, då det innebär att arrangera, liksom alla sprites,
kommer att kunna se, modifiera, och tillgång som
variabel som du har skapat.
Och när det gäller design, är det bäst att välja lokal räckvidd när du kan
bara så att resten av sprites och scenen behöver inte oroa sig
hålla reda på den variabeln.
>> Du kan faktiskt ha två variabler samma namn för olika sprites som
länge som de är lokala variabler.
Sprite man, en katt, kan ha en variabel namn Counter, och sprite två, en hund,
kan också ha en variabel med namnet Counter så länge dessa
är både lokala variabler.
Eftersom omfattningen av den variabla sträcker sig inte till resten av
programmet, och ingen av de andra sprites eller scenen kommer att bli förvirrad.
>> Tidigare nämnde jag ingångspunkt, den när grön flagg klickade blocket.
Att blocket och den åtföljande uttalanden huvudsak träffande
dina sprites eller scenen, OK, när den gröna flaggan är tryckt, är detta
vad du ska göra.
Men det är inte den enda händelsen som sprites och scenen kan svara på.
Vi har, till exempel, en händelse för när en tangent trycks ned.
Du kan faktiskt välja bokstäverna A genom Z, noll till nio eller
piltangenterna.
>> Det finns andra händelser också, till exempel som när din sprite klickas.
När du börjar med event block som dessa, kommer du att märka en trend.
De har alla en enda grupp på botten och en slät topp, som
indikerar att inget ovan fäster det blocket.
Du bygger under dessa händelser block och bygga nedåt.
>> Nu, vad händer om vi vill ha en viss händelse att hända, säger, när en katt är
röra ett visst avsnitt på scenen?
Vi har faktiskt inte har någon inbyggd händelse för att beteckna att, så vad vi ska
behöver göra är att skapa vår egen händelse.
Och det kallas sändningar.
>> Så när du vill signalera att en viss händelse har hänt, då du
Använd en svart heter Broadcast, som finns i fliken Kontroll.
Där kommer du skriva in namnet på den Om du vill sända, och
sedan beroende på vilket som sprite eller skede kan reagera på det
sändas även om du så önskar.
Den när jag får blocket berättar sprites vad de ska göra när de är
meddelas att din anpassade händelse som har hänt.
Så kom ihåg att när du sänder en händelse, är det med det
förståelse för att någon av de sprites eller scenen kommer att
emot denna händelse och svara på det.
>> Nu, den sista konceptet innan vi får till ett faktiskt exempel av en skrapa
program, är begreppet trådar.
Det är när datorn är verkställande samtidig
processer samtidigt.
Och jag är säker på att vi alla har tagit fördel av detta.
Som att surfa på nätet medan lyssna på musik.
Datorn kan exekvera flera saker på samma gång.
>> I detta exempel här, dessa två skript kan användas för
exakt samma sprite.
Inmatningspunkt blocket, när Grön Flagg Clicked, används flera gånger, men
de är två separata skript.
Sannerligen, klickade på Grön Flagg blocket kommer förmodligen att vara en av de mest
populära kvarter i ditt program.
Här ser vi att när den gröna flaggan är klickade, det finns en process går
på, samt en annan.
Så Scratch kommer faktiskt köra dessa två vid exakt samma tidpunkt.
Och att veta att du faktiskt kan ha mer än en ingång, även om
det är samma ingång, går att vara riktigt användbart om du vill
separata distinkta uppgifter från varandra.
>> Okej.
Så nu när vi har täckt alla dessa begrepp, låt oss titta på ett exempel.
Jag har gjort en serie av Scratch program, så försök att följa som vi
göra ett litet spel.
Låt oss börja med att öppna Hungry Dino Zero.
>> Låt oss klicka på den gröna flaggan för att starta det och se vad den gör.
Vi har en bugg sprite som flyttar till ett några steg, återställs på lite höjd, och
sedan steg tillbaka.
Och sedan har vi en dino sprite.
Genom att trycka på piltangenterna, jag flyttar Dino sprite runt, vilket gör det vänder
och rotera.
Det kan vara ganska kul, men Det är inte så många
skript i detta program.
Vi kan definitivt lägga till den här.
>> Till exempel, när dino rör det kan faktiskt gå av skärmen och
nästan försvinna från platsen.
Vi vill ändra på det eftersom vi vill inte dino fly.
Så låt oss sluta våra manus med den röda flagga och sedan redigera dino skript.
Observera att detta manus har ett evigt loop, som avslutas med en
rak kant.
Det har inte något spår längst ned.
Och det är vettigt ur namn, ett evigt loop.
Det verkställande något oändligt och kommer aldrig att sluta.
Så detta är en stor möjlighet att införa en tråd.
>> Okej.
Så låt oss lägga ett annat skript.
Jag ska börja med den här posten punkt, när Grön Flagg Clicked.
Och jag vill att kontinuerligt kontrollera huruvida dino kommer att bli
vidrör kanten.
Under Motion finns det ett snyggt litet kvarter som säger, Om On Edge Bounce.
Och så vill vi kontinuerligt utföra detta.
>> Vad detta uttalande gör är kontrollerar om spriten är på kanten av den
stadium, och studsar tillbaka om det är.
Och eftersom användaren kan alltid flytta dino, vill vi att hitta någon form av
loop som tillåter oss att kontinuerligt verkställa detta uttalande.
Titta under Control vi välj alltid slingan.
Så låt oss dra det in i dino skript, och sedan
lägg Om On Edge Bounce.
Och sedan ska vi testa vårt program.
>> Så felet rör sig som vanligt, och sedan om vi testa vår nya manus av
flytta vår dino till kanten, Vi ser att det inte kan
fly scenen längre.
Det studsar tillbaka.
Nu kanske du undrar varför dino studsar men inte felet.
Tja, det är därför vi skrev vår nyaste manus inuti dino-skript
och inte buggar.
Så felet inte kommer att lyssna på instruktioner vi gav Dino.
>> Okej.
Så låt oss lägga till något nytt nu.
Om du går till Dräkter fliken ser du att de olika kostymer som
kommer förladdad med din valda sprite Om du väljer en från
Scratch bibliotek.
Det är det här gulliga lilla dino segrare dräkt, så låt oss genomföra dino
chomping när vi trycker på, säga, på blanksteg.
>> Tillbaka till Dino skript.
I detta skriptet här, jag är redan checkar i forever loop huruvida
vissa piltangenterna hålls intryckta och flytta dino därefter.
Om de lämnade pilen trycks in, dino roterar moturs.
Om den högra pilen trycks, Dino roterar medurs.
Så om uppåtpilen trycks sedan Dino fortskrider framåt.
Vi kan bara lägga till skriptet istället för att lägga till en separat en eftersom detta
redan checkar in temat vilka tangenter trycks.
>> Låt oss lägga en som kontrollerar för mellanslagstangenten trycks.
Dessa block här bläddrar för nycklarna som pressas.
De är alla i ljusare blå, så Låt oss gå till klarblå avkänning
uttalanden och se dig omkring.
Här är en nyckel Spaced Press blocket.
Så vad vi vill göra är att ha dino byta till sitt hugga ner kostym
Om, och endast om, den Space tangent trycks ned.
>> Så låt oss efterlikna strukturen här.
Nu, ändra dräkten har att göra med hur dino ser så går vi till
Titta uttalande.
Och visst, vi har ett Switch Dräkt Dino Chomp.
Nu, när vi chomp ner vi inte vill Dino vara chomping ner för evigt,
så låt oss lägga ett uttalande säger det att växla tillbaka.
Det kommer att byta kostymer typ av snabbt, men eftersom i Scratch uttalanden
kommer köra rygg mot rygg riktigt snabbt, nästan omedelbart.
Så låt oss gå till Kontrollpanelen och sedan göra dino paus för lite genom att vänta
en sekund efter det chomps ner.
>> Nu ska vi redigera bugg spriten.
Felet sprite steg framåt fem steg totalt fem gånger efter en
ögonblicks paus.
I det övre blocket här felet placerar sig vid en viss
x-koordinatvärde.
För att hitta koordinaterna kan du faktiskt musen över skärmen och
sedan i det nedre hörnet av scenen Fönstret koordinaterna uppdateras så
du kan dra nytta av denna behändiga funktionen att genomföra koordinaterna
som du vill.
Och i detta uttalande här, instruerar vi felet att börja på samma
x-värde varje gång, men att välja en slumpmässig höjd för bugg som fortfarande
stannar inom de begränsningar av scenen.
>> Se här att jag tar fördel av Vid sändningar i Scratch.
Denna händelsehanterare kallas New Bug1.
Så när felet erhåller New Bug1 händelsen,
det ska verkställa uttalandet.
Så efter den flyttar fram sin uppsättning antal gånger, det faktiskt
sändningar evenemanget New Bug1.
>> Men hur vi ändrar detta script lite?
Just nu har vi felet flytta fem steg.
Det är inte mycket, en total av fem gånger.
Vi vet inte riktigt hur många gånger kommer behövas fram felet når,
säga, i slutet av skärmen, så låt oss göra men når slutet av
skärmen, men använda någon form av annan konstruktion.
>> Jag kommer att skilja detta eftersom Vi ska ändra några saker.
För att ta bort block från Scratch du dra blocken till
vänster och släpp sedan.
Och det tas bort.
Om du bestämmer dig för att du inte Vill ha det bort då du kan
Gå till Redigera och återställa.
Men vi ville få Bli av med det blocket.
>> Vad vi vill göra nu är att flytta, säger, 50 steg och pausa en sekund, och
Upprepa detta tills vi röra slutet av skärmen.
Så låt oss använda en loop som tillåter oss att upprepa en process tills en viss
villkoret är uppfyllt, träffande heter Repeat Until.
>> Vad går in i tillståndet av en Repeat Until?
Något som berättar om bug vidrör kanten av
skärmen, vilket kommer att vara under de avkännande rapporter.
Här är det här Boolean, Röra.
Och du kan välja här vad du vill söka efter.
Så vi ska välja Touching Edge och lägg detta villkorssats igen
>> Så nu om vi tittar på vår bugg, det ska flytta tillbaka igen när det berör
kanten av scenen.
Bra.
Vi är färdiga med Hungry Dino Zero, så låt oss öppna Hungry Dino One.
Ungefär som ett matlagningsprogram, har jag lagt lite fler funktioner.
Till exempel kommer du att se att felet är faktiskt glider helt enkelt nu
till skillnad från tidigare.
Under rörelse finns det här glida uttalande.
Nu glider buggen 70 enheter till rätt i sitt nuvarande utläggning, men
stannar kvar på samma y-position här.
Och vi kan nu ha en dino chomping som vi genomfört tidigare.
>> Men, är detta program inte kallas Hungry Dion för ingenting så låt oss ha
dino äta felet.
Hur kan vi tala om buggen, eller berätta dino, att man har huggit ner?
Hur kan vi kommunicera detta evenemang?
Tja, vi vet att när vi växlar dräkt för dino till dino segrare
att vi har chomped ned.
Och säga att vi vill felet att försvinna när den har ä***.
Jo, vi måste kolla om felet har chomped på och
meddela bugg som den kommer att ha att dölja eller försvinna från skärmen
när det har varit chomped ned.
>> Så vilken typ av koncept, vilken typ av verktyg kan vi använda för att få dino
meddela bugg som Det har chomped ner?
Broadcasting.
Så låt oss gå till evenemang och lägg en händelse att sända.
Chomp.
OK.
Men kom ihåg att när vi sänder något vi också måste
emot denna händelse.
Så vilken sprite kommer att sända segrare?
Nåväl, låt oss ha det dino gör att då mellanslagstangenten trycks.
>> Låt oss lägga ett block för att ta emot segrare.
Nu, när dino kommer ner bara på ett tomrum som vi inte vill att bugga
att reagera på det alls, endast om dino var vidrör men på den tiden
av chomp gör vi faktiskt göra något.
Så vi kommer att använda villkoret Om eftersom Vi kollar om något är
sant eller inte.
>> Om vi nu går tillbaka till Sensing, då vi kan använda denna röra
blockera och välj Dino.
Då, under Utseende, finner vi detta Dölj kvarter som i princip kommer att göra felet
försvinna från scenen.
>> Vi ska göra det gömmer, men vi gör vill ha en annan bugg, eller hur?
Vår dino är hungrig.
Så vi vill ge den en annan bugg att jaga.
Så låt oss också sända händelsen Ny Bug1.
Utom vi vill att det ska vänta ett tag innan en annan bugg visas, så låt oss
också vänta en sekund.
>> Okej.
Så låt oss kolla här.
Vi chomped ner, en utan försvinner, en annan visas, och vi chomp ned
på den igen.
Detta ser ut som en ganska roligt spel, men alla spel
måste göra mål, eller hur?
Så vad kan vi använda för att hålla reda på hur många buggar det dino har ä***?
En variabel.
Så låt oss lägga till en variabel som heter Score.
>> Och nu får vi bestämma vad omfattning denna variabel.
Så låt oss tänka.
Samtidigt som vi kanske vill det men för att öka ställningen om det har varit
framgångsrikt ä***, och scenen kanske ha något att göra med den
värdering samt, så låt oss tilldela denna variabel till alla sprites.
>> Vi vill öka värdering om, och endast om ett fel har ä***.
Och vi har redan skrivit ett manus som behandlar en bugg äts så
Låt oss lägga detta uttalande in, Byt Betyg By One.
Det betyder att när du äter en bugg poängen ökar.
>> Låt oss spela för lite och äter, Jag vet inte, tre buggar.
Så du tröttnar på spelet, väl, du trycker på den röda stopp
underteckna att stoppa spelet.
Och när du vill komma tillbaka kommer du tryck på den gröna flaggan igen.
Men poängen är fortfarande tre även även om jag spelar ett nytt spel.
Vi vill inte ge användarna ett huvud start, så vi måste återställa
poäng varje gång de starta ett nytt spel.
Så låt oss lägga ett uttalande till scenens inkörsport skript för att ställa in
variabel poäng till noll.
Så nu, när du startar ett spel, poängen börjar på noll.
>> Nu ska vi öppna Hungry Dino 2 där Jag har lagt till några fler saker.
Jag klickade rätt på bugg sprite till duplicera sprite som gjorde en
sprite identisk med min förra.
Poison Bug är väsentligen identisk med Bug1 men jag valde en ny kostym eftersom
Jag tyckte det såg ut, ja, typ av giftiga.
Istället för att öka poängen när giftet bugg äts, faktiskt jag
sänka poängen genom att ändra Betyg från negativ.
>> Och sedan gjorde jag en annan kostym för vår dino med färgen editor för att
gör en sjuk tittar dino och gav den namnet Dino Sick.
Men vi använder inte denna dräkt i vår programmet ännu, så låt oss lägga till några
uttalanden och block som kommer att förändra Dino kostym till den gröna sjuka
dräkt när den äter en förgiftad bugg.
>> Nu, eftersom vi dupliceras bugg spriten, den förgiftade bugg har alla
skript som ursprungliga bugg gör.
Om du vill kopiera över skript från andra sprites, kan du dra
skriptet på toppen av sprite som du vill kopiera till.
Men vi kommer inte att behöva göra det här eftersom den förgiftade bugg har redan en
script som kontrollerar att felet har chomped ner på.
Och vi kan dra nytta av detta för att meddela dino att det åt en
giftiga bugg.
Och vi kommunicerar mellan sprites från sändning.
Så låt oss sända en ny händelse heter Dino Sick.
>> Och vi vet att vi har en kostym för Dino att byta till, men vi också
vet från tidigare att det är bäst att lägga in en paus
mellan klädbyten.
Så när jag får Dino Sick, jag kommer att byta kostym till Dino Sick, vänta
en sekund, och sedan växla tillbaka till Dino Hungry.
Okej.
Låt oss spela vårt spel och äta en bugg och skalbaggen.
Och poängen minskar med ett.
>> Nu, ibland kanske du märker att variabel kan inte visas på
vänstra hörnet av skärmen.
Om du navigerar till Data avsnittet under skript, ser du denna bock
bredvid de variabler som du skapar.
Och döljer eller unhides de variabel från skärmen.
Men du kan också använda ett uttalande heter Show eller
Dölj en viss variabel.
Så låt oss använda denna Score Show Variable till se till att varje gång vi startar
spelet är den rörliga bilden.
Bra.
>> Så låt oss köra spelet och äta en gift bugg direkt.
Nu är det lite konstigt att ha ett spel att få negativa punkter, eller hur?
Så låt oss presentera en annan funktion.
Om dino äter alltför många giftiga buggar då det blir för sjuka och
Spelet är över.
Så för att genomföra detta, kommer vi sända annan händelse, Game Over.
Hur vet vi då att exekvera denna Game Over sändning?
>> Tja, kan vi göra på flera sätt.
Vi kan ha ett manus i stadiet att fortlöpande kontrollerar om poängen
är negativ eller inte, och sändningar Game Over när
ställningen blir negativ.
Eller vi kan dra nytta av det faktum att det enda sättet poängen kunde någonsin
vara negativ, är när en giftig bugg äts.
För när du äter den andra bugg, poängen ökar.
Det är ingen idé att kontrollera om det bör vara Game Over eller inte när du
äta en ätlig bugg.
>> Så vi kan egentligen bara lägga till skript som tar emot Dino Sick
händelse sändning.
Vi vill att instruera dino följande.
Om summan är mindre än noll, sända Game Over.
Så vi ska bygga Score mindre än noll tillstånd att använda ett kvarter från
operatören avsnitt, och dra i vår värdering av det blocket.
Och se här du kan bara dra variabel poäng och lägga mindre än noll.
Och vi kommer att sända en ny händelse, Game Over.
>> Men om poängen inte har gått under noll, vill vi dino till
fortsätta spelet.
Så istället för att använda en om här, låt oss använda en if annars konstruera.
En om annat konstruera berättar vår dino till göra en sak om villkoret är sant
och en annan sak om villkoret är falskt.
Kroppen av vår första om kan gå in i den om annat, så låt oss dra det i.
Men om poängen inte är mindre än noll, så låt oss gå tillbaka till
Hungry Dino kostym.
Vi vill inte göra det preemptively.
Bra.
>> Men eftersom vi sänder Game Over, Vi måste fortfarande göra en
händelse mottagare blocket.
Det finns faktiskt en Stop All uttalande i kontroll, så vi koppla detta till
när jag får Game Over.
Men vi vill också felet att stoppa, så Låt oss dra detta script på alla
felet älvor liksom scenen.
Låt oss prova detta.
>> Att äta en giftig bugg direkt, Programmet slutar som förväntat.
Ingen av de andra buggar flytta och varken gör dino om du trycker
ner piltangenterna.
Men låt oss säga att vi inte vill att påminna användaren av deras negativa poäng, så
Vi gömmer den rörliga Betyg från scenen när spelet
Över händelsen tas emot.
Okej.
>> Så detta är ett ganska anständigt spel.
Med mer tid du kan lägga till fler sprites och fler manus.
Kanske buggar kan flytta vid olika hastigheter.
Du kan lägga till en ny bakgrund till scenen -
en Game Over bakgrund -
så att, när steget mottager Game Over händelse, kan det växla till
Game Over bakgrund och alla av sprites hide.
Massor av mindre anpassningar kan göras för att göra ditt spel lite mer polerad.
>> Och detta är bara ett exempel på en projekt som du kan göra i Scratch
använda alla de verktyg som vi diskuterat tidigare -
sprites, kostymer, scener, kulisser, villkor, loopar, variabler,
sändningar händelser och trådar.
Hungry Dino använder inte något ljud effekter, men du kan enkelt lägga till din
egen genom att gå till fliken Ljud och utforska de sunda uttalanden.
Scratch är en bra introduktion till programmering begrepp, så vara kreativ
och, viktigast av allt, ha kul.
Mitt namn är Zamyla, och detta är CS50.