1 00:00:00,000 --> 00:00:10,820 2 00:00:10,820 --> 00:00:13,190 >> ZAMYLA CHAN: Hej, och välkommen till Scratch genomgång. 3 00:00:13,190 --> 00:00:16,490 Mitt namn är Zamyla och jag ska vara ledande genomgångar för dig i år. 4 00:00:16,490 --> 00:00:20,340 I CS50, är ​​alla problem set åtföljs av en genomgång. 5 00:00:20,340 --> 00:00:23,200 Under dessa genomgångar ska jag gå över veckans problem set, förklara 6 00:00:23,200 --> 00:00:27,790 begrepp krävs och bryta upp Problemet satt i hanterbara bites. 7 00:00:27,790 --> 00:00:31,360 >> För det första p-set i CS50, faktiskt vi kommer inte komma in i att skriva och 8 00:00:31,360 --> 00:00:33,780 maskinkod grejer riktigt än. 9 00:00:33,780 --> 00:00:37,230 Snarare kommer vi att använda Scratch, en program som tillåter oss att utforska 10 00:00:37,230 --> 00:00:40,420 programmering begrepp i en visuellt och kreativt sätt. 11 00:00:40,420 --> 00:00:43,260 Denna genomgång kommer att undersöka grundläggande begrepp som vi använder 12 00:00:43,260 --> 00:00:48,360 hela CS50, samt servering som en Scratch handledning. 13 00:00:48,360 --> 00:00:51,030 I varje genomgång ska jag visa en uppsättning av verktyg som du kan använda för 14 00:00:51,030 --> 00:00:52,080 problem set. 15 00:00:52,080 --> 00:00:55,970 Från större kurs koncept till färdiga funktioner, det är bra och praktiskt att 16 00:00:55,970 --> 00:00:59,770 vet vad du har innan angripa problemet set. 17 00:00:59,770 --> 00:01:02,500 >> Först, låt oss tala om sprites. 18 00:01:02,500 --> 00:01:05,420 Älvor är centrala för att projekt i grunden. 19 00:01:05,420 --> 00:01:08,560 Varje objekt eller varje tecken, vare sig det är en katt, en hund eller en 20 00:01:08,560 --> 00:01:10,660 boll, kallas en sprite. 21 00:01:10,660 --> 00:01:14,590 Om jag vill ha, säg, två katter i mitt projekt, Jag måste göra två 22 00:01:14,590 --> 00:01:19,850 separata sprites i Scratch, även om de är helt identiska. 23 00:01:19,850 --> 00:01:23,920 >> Varje sprite har tillhörande skript med den specifika spriten. 24 00:01:23,920 --> 00:01:26,460 Skript är vad du tänker att bygga genom att dra 25 00:01:26,460 --> 00:01:27,910 och släppa block. 26 00:01:27,910 --> 00:01:30,480 Skript är instruktioner som fastställa och definiera 27 00:01:30,480 --> 00:01:33,620 hur skriptet fungerar. 28 00:01:33,620 --> 00:01:35,700 >> Nu, sprites är inte bara bilder. 29 00:01:35,700 --> 00:01:39,490 En sprites dräkt bestämmer vad spriten ser ut. 30 00:01:39,490 --> 00:01:42,090 Någon given sprite kan ha mer än en kostym. 31 00:01:42,090 --> 00:01:45,680 Lite senare under den här genomgången jag ska visa dig hur du kan få din 32 00:01:45,680 --> 00:01:48,110 sprite förändring kostymer Under ditt program. 33 00:01:48,110 --> 00:01:52,010 >> För att skapa en sprite i grunden, kan du antingen välja sin ursprungliga kostym för 34 00:01:52,010 --> 00:01:55,700 Scratch: s bibliotek, dra dina egna i Scratch: s inbyggda måla editor, 35 00:01:55,700 --> 00:02:00,340 ladda upp din egen bild, eller ta en bild med datorns kamera. 36 00:02:00,340 --> 00:02:03,210 Alla sprites är placerade på vad vi kallar scenen. 37 00:02:03,210 --> 00:02:06,840 Scenen är som vår duk där sprites kan flytta runt. 38 00:02:06,840 --> 00:02:10,530 >> Även om vi kan ha multiplar sprites, Det kan bara vara en etapp. 39 00:02:10,530 --> 00:02:14,050 Annars, stadier och sprites är ganska liknande av att steget kan 40 00:02:14,050 --> 00:02:15,530 också ha skript. 41 00:02:15,530 --> 00:02:18,910 Skript på scenen är mycket användbara när du inte har ett skript som 42 00:02:18,910 --> 00:02:22,500 inte nödvändigtvis gälla till en specifik sprite. 43 00:02:22,500 --> 00:02:25,620 Kanske det avser flera ränder, eller ingen alls. 44 00:02:25,620 --> 00:02:29,050 >> Det är i allmänhet bra design för att placera din manus på scenen, om de är 45 00:02:29,050 --> 00:02:33,250 allmänt nog och inte gäller till specifika sprites. 46 00:02:33,250 --> 00:02:37,240 Och precis som sprites har dräkter, stadier har bakgrunder som kan förändra 47 00:02:37,240 --> 00:02:38,670 under loppet av ditt program. 48 00:02:38,670 --> 00:02:42,670 Och du kan dra dina egna, ladda upp en bild, ta en bild, eller använda 49 00:02:42,670 --> 00:02:46,330 Scratch bibliotek av bakgrunder. 50 00:02:46,330 --> 00:02:50,140 Både på scenen och sprites kan också spela ljud från Scratch bibliotek, eller 51 00:02:50,140 --> 00:02:51,390 du kan ladda upp och spela in egna. 52 00:02:51,390 --> 00:02:53,920 53 00:02:53,920 --> 00:02:57,000 >> För att starta din Scratch program kommer du måste klicka på den gröna flaggan vid 54 00:02:57,000 --> 00:02:59,530 övre högra hörnet av scenen fönstret. 55 00:02:59,530 --> 00:03:02,810 Men om du inte ansluta något till detta block just här, så ingenting är 56 00:03:02,810 --> 00:03:07,290 faktiskt kommer att hända eftersom din sprites och scenen måste veta 57 00:03:07,290 --> 00:03:11,090 att svara på det fall grön flagg som klickade. 58 00:03:11,090 --> 00:03:14,340 Så du behöver för att fästa blocken till spår vid botten av gröna 59 00:03:14,340 --> 00:03:19,640 flagga, och sedan kommer programmet att exekvera dessa åtgärder när du börjar 60 00:03:19,640 --> 00:03:21,750 ditt program. 61 00:03:21,750 --> 00:03:23,450 >> Nå, vad kommer efter det? 62 00:03:23,450 --> 00:03:26,360 Tja, har Scratch massa block för dig att använda, och du kan 63 00:03:26,360 --> 00:03:27,730 även göra din egen. 64 00:03:27,730 --> 00:03:32,440 Du kommer att se tre flikar, skript, Kostymer och ljud. 65 00:03:32,440 --> 00:03:36,800 Under Skript taggen är kategorier uttalanden. 66 00:03:36,800 --> 00:03:39,380 Uttalanden är enkelt organiseras av färg. 67 00:03:39,380 --> 00:03:45,000 Du måste åtgärder i samband med rörelse, ljud, utseende, och så vidare. 68 00:03:45,000 --> 00:03:47,640 Även om du har andra byggt block runt dina uttalanden, är det 69 00:03:47,640 --> 00:03:51,650 uttalanden som hjälper sprites eller scenen för att göra något, medan 70 00:03:51,650 --> 00:03:55,990 andra block kommer att avgöra när man gör dem. 71 00:03:55,990 --> 00:03:59,400 >> Låt oss säga att du skapar din alldeles första projektet och du bara vill ha det 72 00:03:59,400 --> 00:04:02,620 katt jama under vissa omständigheter. 73 00:04:02,620 --> 00:04:06,070 För att genomföra detta, kan vi ta fördel av Booleans. 74 00:04:06,070 --> 00:04:10,470 Dessa är uttryck som utvärderas antingen sant eller falskt. 75 00:04:10,470 --> 00:04:14,960 I Scratch dessa identifieras av vinklar i slutet av blocken. 76 00:04:14,960 --> 00:04:18,850 Du har en mängd olika typer av Booleans som är musen 77 00:04:18,850 --> 00:04:23,340 trycks ned, likställer 2 plus 2 till 5, är eller användaren trycker 78 00:04:23,340 --> 00:04:26,750 ner en viss tangent på tangentbordet? 79 00:04:26,750 --> 00:04:29,330 >> Nu kan du inte bara använda dessa Booleans ensam. 80 00:04:29,330 --> 00:04:32,380 Du måste kombinera dem med vad vi kallar förhållanden. 81 00:04:32,380 --> 00:04:36,250 Skick block kan hittas i de orange revisionsutlåtandena. 82 00:04:36,250 --> 00:04:39,390 Villkor har lämpligen en liten platshållare som visar formen på 83 00:04:39,390 --> 00:04:41,410 det block som du behöver att sätta i det. 84 00:04:41,410 --> 00:04:44,960 Så beroende på sammanhanget för situation, kan du välja ett booleskt 85 00:04:44,960 --> 00:04:47,210 och placera den i ditt tillstånd. 86 00:04:47,210 --> 00:04:50,450 Och sätta ihop, har du en villkorlig uttalande. 87 00:04:50,450 --> 00:04:53,890 När du sätter uttalanden inuti som blockera dig har en struktur som inrättats 88 00:04:53,890 --> 00:04:57,510 varigenom en gång ett visst villkor är uppfyllt, köra dig då de 89 00:04:57,510 --> 00:05:00,330 uttalanden. 90 00:05:00,330 --> 00:05:04,460 >> En av fördelarna med datorer är den stora kraften och hastigheten vid vilken de 91 00:05:04,460 --> 00:05:06,960 kan utföra repetitiva processer. 92 00:05:06,960 --> 00:05:10,110 I stället för, säg, upprepning av en undervisning om och om och om igen 93 00:05:10,110 --> 00:05:14,080 igen och faktiskt skriva ut det, eller i det här fallet, dra och släppa 94 00:05:14,080 --> 00:05:19,090 och dra och släppa, vad vi kan göra är att kapsla in i en loop. 95 00:05:19,090 --> 00:05:23,220 >> Loopar kan användas för att antingen exekvera saker oändligt med ett evigt loop, 96 00:05:23,220 --> 00:05:25,100 eller för ett visst antal gånger. 97 00:05:25,100 --> 00:05:30,930 Till exempel, upprepa uttalandet, säger Hej, 10 gånger, eller kanske tills en viss 98 00:05:30,930 --> 00:05:32,970 villkoret är sant. 99 00:05:32,970 --> 00:05:36,990 Och med denna Repeat Until blockera dig se att Scratch är bl a att 100 00:05:36,990 --> 00:05:41,510 måste du placera en Boolean in Upprepa tills blocket att göra en 101 00:05:41,510 --> 00:05:44,370 villkorlig uttalande. 102 00:05:44,370 --> 00:05:48,410 >> Nu vet vi att vi kan kapsla repetitiva processer inuti loopar, 103 00:05:48,410 --> 00:05:52,990 så att du kan se varför något liknande detta kanske inte vara perfekt. 104 00:05:52,990 --> 00:05:55,380 Det är super lång, gör det bara samma sak om och om igen 105 00:05:55,380 --> 00:05:57,670 igen, 10 gånger faktiskt. 106 00:05:57,670 --> 00:06:02,450 Det rör sig 10 steg, säger hej, flytta 10 steg, säger hej. 107 00:06:02,450 --> 00:06:05,232 Men med hjälp av slingor vi kan städa upp detta lite. 108 00:06:05,232 --> 00:06:07,230 Se hur det är mycket bättre. 109 00:06:07,230 --> 00:06:11,400 Det är kortare, det är mindre och det fullbordar samma sak. 110 00:06:11,400 --> 00:06:13,560 >> Går vidare till variabler. 111 00:06:13,560 --> 00:06:16,810 Variabler är i huvudsak behållare för värden. 112 00:06:16,810 --> 00:06:20,060 I Scratch, dessa typer av värden kan antingen ord eller de kan vara 113 00:06:20,060 --> 00:06:23,460 siffror, värden som vi har kontroll över. 114 00:06:23,460 --> 00:06:26,640 I denna första blocket har vi en text variabel som innehåller 115 00:06:26,640 --> 00:06:28,460 värde, Hello, World. 116 00:06:28,460 --> 00:06:32,010 I det andra exemplet, det antas att Vi har redan en variabel som heter 117 00:06:32,010 --> 00:06:35,870 Räknare och vi uppräkning det med tre. 118 00:06:35,870 --> 00:06:39,500 Och sedan, i det sista exemplet, ser vi ett exempel på variabler som används 119 00:06:39,500 --> 00:06:41,290 insidan av förhållanden. 120 00:06:41,290 --> 00:06:47,210 I detta block, ber vi om variabeln Counter är mindre än noll. 121 00:06:47,210 --> 00:06:51,030 >> Nu, när du skapar en variabel du har att avgöra om du gör det 122 00:06:51,030 --> 00:06:54,810 variabel tillgänglig för alla de sprites i din Scratch program, eller 123 00:06:54,810 --> 00:06:58,610 bara för de utvalda specifika sprites när du gör variabeln. 124 00:06:58,610 --> 00:07:01,010 Och detta är en mycket viktig beslut att fatta. 125 00:07:01,010 --> 00:07:04,780 Det handlar om vilket utrymme du vill att variabeln ska ha. 126 00:07:04,780 --> 00:07:09,120 >> Ett exempel på lokal räckvidd skulle vara en variabel bara för en specifik sprite, 127 00:07:09,120 --> 00:07:13,240 vilket innebär att endast den sprite skulle kunna se eller ändra det. 128 00:07:13,240 --> 00:07:17,570 Om du bestämmer en variabel med global utrymme genom att välja för alla 129 00:07:17,570 --> 00:07:20,910 sprites, då det innebär att arrangera, liksom alla sprites, 130 00:07:20,910 --> 00:07:23,130 kommer att kunna se, modifiera, och tillgång som 131 00:07:23,130 --> 00:07:25,290 variabel som du har skapat. 132 00:07:25,290 --> 00:07:29,370 Och när det gäller design, är det bäst att välja lokal räckvidd när du kan 133 00:07:29,370 --> 00:07:32,390 bara så att resten av sprites och scenen behöver inte oroa sig 134 00:07:32,390 --> 00:07:33,915 hålla reda på den variabeln. 135 00:07:33,915 --> 00:07:36,910 136 00:07:36,910 --> 00:07:40,380 >> Du kan faktiskt ha två variabler samma namn för olika sprites som 137 00:07:40,380 --> 00:07:42,320 länge som de är lokala variabler. 138 00:07:42,320 --> 00:07:46,620 Sprite man, en katt, kan ha en variabel namn Counter, och sprite två, en hund, 139 00:07:46,620 --> 00:07:49,110 kan också ha en variabel med namnet Counter så länge dessa 140 00:07:49,110 --> 00:07:50,620 är både lokala variabler. 141 00:07:50,620 --> 00:07:53,290 Eftersom omfattningen av den variabla sträcker sig inte till resten av 142 00:07:53,290 --> 00:07:56,940 programmet, och ingen av de andra sprites eller scenen kommer att bli förvirrad. 143 00:07:56,940 --> 00:07:59,850 144 00:07:59,850 --> 00:08:04,830 >> Tidigare nämnde jag ingångspunkt, den när grön flagg klickade blocket. 145 00:08:04,830 --> 00:08:07,510 Att blocket och den åtföljande uttalanden huvudsak träffande 146 00:08:07,510 --> 00:08:11,710 dina sprites eller scenen, OK, när den gröna flaggan är tryckt, är detta 147 00:08:11,710 --> 00:08:13,250 vad du ska göra. 148 00:08:13,250 --> 00:08:17,000 Men det är inte den enda händelsen som sprites och scenen kan svara på. 149 00:08:17,000 --> 00:08:21,520 Vi har, till exempel, en händelse för när en tangent trycks ned. 150 00:08:21,520 --> 00:08:25,335 Du kan faktiskt välja bokstäverna A genom Z, noll till nio eller 151 00:08:25,335 --> 00:08:26,265 piltangenterna. 152 00:08:26,265 --> 00:08:30,590 >> Det finns andra händelser också, till exempel som när din sprite klickas. 153 00:08:30,590 --> 00:08:33,770 När du börjar med event block som dessa, kommer du att märka en trend. 154 00:08:33,770 --> 00:08:37,440 De har alla en enda grupp på botten och en slät topp, som 155 00:08:37,440 --> 00:08:40,530 indikerar att inget ovan fäster det blocket. 156 00:08:40,530 --> 00:08:43,000 Du bygger under dessa händelser block och bygga nedåt. 157 00:08:43,000 --> 00:08:45,520 158 00:08:45,520 --> 00:08:49,750 >> Nu, vad händer om vi vill ha en viss händelse att hända, säger, när en katt är 159 00:08:49,750 --> 00:08:52,010 röra ett visst avsnitt på scenen? 160 00:08:52,010 --> 00:08:55,850 Vi har faktiskt inte har någon inbyggd händelse för att beteckna att, så vad vi ska 161 00:08:55,850 --> 00:08:57,990 behöver göra är att skapa vår egen händelse. 162 00:08:57,990 --> 00:09:00,240 Och det kallas sändningar. 163 00:09:00,240 --> 00:09:03,480 >> Så när du vill signalera att en viss händelse har hänt, då du 164 00:09:03,480 --> 00:09:07,810 Använd en svart heter Broadcast, som finns i fliken Kontroll. 165 00:09:07,810 --> 00:09:11,240 Där kommer du skriva in namnet på den Om du vill sända, och 166 00:09:11,240 --> 00:09:14,290 sedan beroende på vilket som sprite eller skede kan reagera på det 167 00:09:14,290 --> 00:09:16,260 sändas även om du så önskar. 168 00:09:16,260 --> 00:09:20,560 Den när jag får blocket berättar sprites vad de ska göra när de är 169 00:09:20,560 --> 00:09:23,710 meddelas att din anpassade händelse som har hänt. 170 00:09:23,710 --> 00:09:27,000 Så kom ihåg att när du sänder en händelse, är det med det 171 00:09:27,000 --> 00:09:31,130 förståelse för att någon av de sprites eller scenen kommer att 172 00:09:31,130 --> 00:09:35,440 emot denna händelse och svara på det. 173 00:09:35,440 --> 00:09:38,840 >> Nu, den sista konceptet innan vi får till ett faktiskt exempel av en skrapa 174 00:09:38,840 --> 00:09:41,360 program, är begreppet trådar. 175 00:09:41,360 --> 00:09:43,780 Det är när datorn är verkställande samtidig 176 00:09:43,780 --> 00:09:45,790 processer samtidigt. 177 00:09:45,790 --> 00:09:47,960 Och jag är säker på att vi alla har tagit fördel av detta. 178 00:09:47,960 --> 00:09:50,900 Som att surfa på nätet medan lyssna på musik. 179 00:09:50,900 --> 00:09:54,160 Datorn kan exekvera flera saker på samma gång. 180 00:09:54,160 --> 00:09:56,970 >> I detta exempel här, dessa två skript kan användas för 181 00:09:56,970 --> 00:09:58,430 exakt samma sprite. 182 00:09:58,430 --> 00:10:02,870 Inmatningspunkt blocket, när Grön Flagg Clicked, används flera gånger, men 183 00:10:02,870 --> 00:10:04,990 de är två separata skript. 184 00:10:04,990 --> 00:10:08,870 Sannerligen, klickade på Grön Flagg blocket kommer förmodligen att vara en av de mest 185 00:10:08,870 --> 00:10:11,340 populära kvarter i ditt program. 186 00:10:11,340 --> 00:10:14,550 Här ser vi att när den gröna flaggan är klickade, det finns en process går 187 00:10:14,550 --> 00:10:16,450 på, samt en annan. 188 00:10:16,450 --> 00:10:19,760 Så Scratch kommer faktiskt köra dessa två vid exakt samma tidpunkt. 189 00:10:19,760 --> 00:10:23,850 Och att veta att du faktiskt kan ha mer än en ingång, även om 190 00:10:23,850 --> 00:10:27,070 det är samma ingång, går att vara riktigt användbart om du vill 191 00:10:27,070 --> 00:10:31,340 separata distinkta uppgifter från varandra. 192 00:10:31,340 --> 00:10:31,920 >> Okej. 193 00:10:31,920 --> 00:10:35,640 Så nu när vi har täckt alla dessa begrepp, låt oss titta på ett exempel. 194 00:10:35,640 --> 00:10:38,720 Jag har gjort en serie av Scratch program, så försök att följa som vi 195 00:10:38,720 --> 00:10:40,050 göra ett litet spel. 196 00:10:40,050 --> 00:10:44,400 Låt oss börja med att öppna Hungry Dino Zero. 197 00:10:44,400 --> 00:10:47,460 >> Låt oss klicka på den gröna flaggan för att starta det och se vad den gör. 198 00:10:47,460 --> 00:10:52,580 Vi har en bugg sprite som flyttar till ett några steg, återställs på lite höjd, och 199 00:10:52,580 --> 00:10:54,270 sedan steg tillbaka. 200 00:10:54,270 --> 00:10:55,950 Och sedan har vi en dino sprite. 201 00:10:55,950 --> 00:10:59,740 Genom att trycka på piltangenterna, jag flyttar Dino sprite runt, vilket gör det vänder 202 00:10:59,740 --> 00:11:01,310 och rotera. 203 00:11:01,310 --> 00:11:04,170 Det kan vara ganska kul, men Det är inte så många 204 00:11:04,170 --> 00:11:05,210 skript i detta program. 205 00:11:05,210 --> 00:11:07,120 Vi kan definitivt lägga till den här. 206 00:11:07,120 --> 00:11:09,880 207 00:11:09,880 --> 00:11:13,705 >> Till exempel, när dino rör det kan faktiskt gå av skärmen och 208 00:11:13,705 --> 00:11:15,590 nästan försvinna från platsen. 209 00:11:15,590 --> 00:11:18,900 Vi vill ändra på det eftersom vi vill inte dino fly. 210 00:11:18,900 --> 00:11:24,240 Så låt oss sluta våra manus med den röda flagga och sedan redigera dino skript. 211 00:11:24,240 --> 00:11:28,030 Observera att detta manus har ett evigt loop, som avslutas med en 212 00:11:28,030 --> 00:11:29,350 rak kant. 213 00:11:29,350 --> 00:11:31,060 Det har inte något spår längst ned. 214 00:11:31,060 --> 00:11:33,820 Och det är vettigt ur namn, ett evigt loop. 215 00:11:33,820 --> 00:11:37,300 Det verkställande något oändligt och kommer aldrig att sluta. 216 00:11:37,300 --> 00:11:42,150 Så detta är en stor möjlighet att införa en tråd. 217 00:11:42,150 --> 00:11:42,880 >> Okej. 218 00:11:42,880 --> 00:11:44,710 Så låt oss lägga ett annat skript. 219 00:11:44,710 --> 00:11:52,583 Jag ska börja med den här posten punkt, när Grön Flagg Clicked. 220 00:11:52,583 --> 00:11:55,510 221 00:11:55,510 --> 00:11:58,530 Och jag vill att kontinuerligt kontrollera huruvida dino kommer att bli 222 00:11:58,530 --> 00:12:00,460 vidrör kanten. 223 00:12:00,460 --> 00:12:04,513 Under Motion finns det ett snyggt litet kvarter som säger, Om On Edge Bounce. 224 00:12:04,513 --> 00:12:07,200 225 00:12:07,200 --> 00:12:10,700 Och så vill vi kontinuerligt utföra detta. 226 00:12:10,700 --> 00:12:13,470 >> Vad detta uttalande gör är kontrollerar om spriten är på kanten av den 227 00:12:13,470 --> 00:12:15,440 stadium, och studsar tillbaka om det är. 228 00:12:15,440 --> 00:12:19,300 Och eftersom användaren kan alltid flytta dino, vill vi att hitta någon form av 229 00:12:19,300 --> 00:12:24,330 loop som tillåter oss att kontinuerligt verkställa detta uttalande. 230 00:12:24,330 --> 00:12:27,820 Titta under Control vi välj alltid slingan. 231 00:12:27,820 --> 00:12:31,070 Så låt oss dra det in i dino skript, och sedan 232 00:12:31,070 --> 00:12:34,250 lägg Om On Edge Bounce. 233 00:12:34,250 --> 00:12:35,500 Och sedan ska vi testa vårt program. 234 00:12:35,500 --> 00:12:38,720 235 00:12:38,720 --> 00:12:43,310 >> Så felet rör sig som vanligt, och sedan om vi testa vår nya manus av 236 00:12:43,310 --> 00:12:46,150 flytta vår dino till kanten, Vi ser att det inte kan 237 00:12:46,150 --> 00:12:47,350 fly scenen längre. 238 00:12:47,350 --> 00:12:49,850 Det studsar tillbaka. 239 00:12:49,850 --> 00:12:53,600 Nu kanske du undrar varför dino studsar men inte felet. 240 00:12:53,600 --> 00:12:57,150 Tja, det är därför vi skrev vår nyaste manus inuti dino-skript 241 00:12:57,150 --> 00:12:58,050 och inte buggar. 242 00:12:58,050 --> 00:13:01,410 Så felet inte kommer att lyssna på instruktioner vi gav Dino. 243 00:13:01,410 --> 00:13:04,370 244 00:13:04,370 --> 00:13:04,980 >> Okej. 245 00:13:04,980 --> 00:13:06,950 Så låt oss lägga till något nytt nu. 246 00:13:06,950 --> 00:13:12,690 Om du går till Dräkter fliken ser du att de olika kostymer som 247 00:13:12,690 --> 00:13:15,570 kommer förladdad med din valda sprite Om du väljer en från 248 00:13:15,570 --> 00:13:16,800 Scratch bibliotek. 249 00:13:16,800 --> 00:13:20,420 Det är det här gulliga lilla dino segrare dräkt, så låt oss genomföra dino 250 00:13:20,420 --> 00:13:24,960 chomping när vi trycker på, säga, på blanksteg. 251 00:13:24,960 --> 00:13:26,780 >> Tillbaka till Dino skript. 252 00:13:26,780 --> 00:13:30,070 I detta skriptet här, jag är redan checkar i forever loop huruvida 253 00:13:30,070 --> 00:13:34,170 vissa piltangenterna hålls intryckta och flytta dino därefter. 254 00:13:34,170 --> 00:13:38,490 Om de lämnade pilen trycks in, dino roterar moturs. 255 00:13:38,490 --> 00:13:41,850 Om den högra pilen trycks, Dino roterar medurs. 256 00:13:41,850 --> 00:13:45,580 Så om uppåtpilen trycks sedan Dino fortskrider framåt. 257 00:13:45,580 --> 00:13:48,940 Vi kan bara lägga till skriptet istället för att lägga till en separat en eftersom detta 258 00:13:48,940 --> 00:13:53,660 redan checkar in temat vilka tangenter trycks. 259 00:13:53,660 --> 00:13:56,830 >> Låt oss lägga en som kontrollerar för mellanslagstangenten trycks. 260 00:13:56,830 --> 00:14:00,000 Dessa block här bläddrar för nycklarna som pressas. 261 00:14:00,000 --> 00:14:03,040 De är alla i ljusare blå, så Låt oss gå till klarblå avkänning 262 00:14:03,040 --> 00:14:05,150 uttalanden och se dig omkring. 263 00:14:05,150 --> 00:14:07,240 Här är en nyckel Spaced Press blocket. 264 00:14:07,240 --> 00:14:12,860 Så vad vi vill göra är att ha dino byta till sitt hugga ner kostym 265 00:14:12,860 --> 00:14:17,760 Om, och endast om, den Space tangent trycks ned. 266 00:14:17,760 --> 00:14:19,365 >> Så låt oss efterlikna strukturen här. 267 00:14:19,365 --> 00:14:24,760 268 00:14:24,760 --> 00:14:28,270 Nu, ändra dräkten har att göra med hur dino ser så går vi till 269 00:14:28,270 --> 00:14:29,330 Titta uttalande. 270 00:14:29,330 --> 00:14:34,300 Och visst, vi har ett Switch Dräkt Dino Chomp. 271 00:14:34,300 --> 00:14:37,710 Nu, när vi chomp ner vi inte vill Dino vara chomping ner för evigt, 272 00:14:37,710 --> 00:14:40,630 så låt oss lägga ett uttalande säger det att växla tillbaka. 273 00:14:40,630 --> 00:14:50,870 274 00:14:50,870 --> 00:14:55,335 Det kommer att byta kostymer typ av snabbt, men eftersom i Scratch uttalanden 275 00:14:55,335 --> 00:14:59,230 kommer köra rygg mot rygg riktigt snabbt, nästan omedelbart. 276 00:14:59,230 --> 00:15:03,390 Så låt oss gå till Kontrollpanelen och sedan göra dino paus för lite genom att vänta 277 00:15:03,390 --> 00:15:07,420 en sekund efter det chomps ner. 278 00:15:07,420 --> 00:15:11,140 >> Nu ska vi redigera bugg spriten. 279 00:15:11,140 --> 00:15:15,650 Felet sprite steg framåt fem steg totalt fem gånger efter en 280 00:15:15,650 --> 00:15:17,520 ögonblicks paus. 281 00:15:17,520 --> 00:15:21,150 I det övre blocket här felet placerar sig vid en viss 282 00:15:21,150 --> 00:15:23,510 x-koordinatvärde. 283 00:15:23,510 --> 00:15:27,160 För att hitta koordinaterna kan du faktiskt musen över skärmen och 284 00:15:27,160 --> 00:15:30,880 sedan i det nedre hörnet av scenen Fönstret koordinaterna uppdateras så 285 00:15:30,880 --> 00:15:33,760 du kan dra nytta av denna behändiga funktionen att genomföra koordinaterna 286 00:15:33,760 --> 00:15:35,950 som du vill. 287 00:15:35,950 --> 00:15:40,990 Och i detta uttalande här, instruerar vi felet att börja på samma 288 00:15:40,990 --> 00:15:45,160 x-värde varje gång, men att välja en slumpmässig höjd för bugg som fortfarande 289 00:15:45,160 --> 00:15:47,900 stannar inom de begränsningar av scenen. 290 00:15:47,900 --> 00:15:52,880 >> Se här att jag tar fördel av Vid sändningar i Scratch. 291 00:15:52,880 --> 00:15:57,450 Denna händelsehanterare kallas New Bug1. 292 00:15:57,450 --> 00:16:00,670 Så när felet erhåller New Bug1 händelsen, 293 00:16:00,670 --> 00:16:02,180 det ska verkställa uttalandet. 294 00:16:02,180 --> 00:16:05,150 Så efter den flyttar fram sin uppsättning antal gånger, det faktiskt 295 00:16:05,150 --> 00:16:08,480 sändningar evenemanget New Bug1. 296 00:16:08,480 --> 00:16:10,410 >> Men hur vi ändrar detta script lite? 297 00:16:10,410 --> 00:16:13,090 Just nu har vi felet flytta fem steg. 298 00:16:13,090 --> 00:16:15,660 Det är inte mycket, en total av fem gånger. 299 00:16:15,660 --> 00:16:19,630 Vi vet inte riktigt hur många gånger kommer behövas fram felet når, 300 00:16:19,630 --> 00:16:23,310 säga, i slutet av skärmen, så låt oss göra men når slutet av 301 00:16:23,310 --> 00:16:27,650 skärmen, men använda någon form av annan konstruktion. 302 00:16:27,650 --> 00:16:30,820 >> Jag kommer att skilja detta eftersom Vi ska ändra några saker. 303 00:16:30,820 --> 00:16:35,480 För att ta bort block från Scratch du dra blocken till 304 00:16:35,480 --> 00:16:39,210 vänster och släpp sedan. 305 00:16:39,210 --> 00:16:40,060 Och det tas bort. 306 00:16:40,060 --> 00:16:42,520 Om du bestämmer dig för att du inte Vill ha det bort då du kan 307 00:16:42,520 --> 00:16:44,510 Gå till Redigera och återställa. 308 00:16:44,510 --> 00:16:46,960 Men vi ville få Bli av med det blocket. 309 00:16:46,960 --> 00:16:51,820 >> Vad vi vill göra nu är att flytta, säger, 50 steg och pausa en sekund, och 310 00:16:51,820 --> 00:16:55,190 Upprepa detta tills vi röra slutet av skärmen. 311 00:16:55,190 --> 00:17:00,110 Så låt oss använda en loop som tillåter oss att upprepa en process tills en viss 312 00:17:00,110 --> 00:17:04,990 villkoret är uppfyllt, träffande heter Repeat Until. 313 00:17:04,990 --> 00:17:11,280 >> Vad går in i tillståndet av en Repeat Until? 314 00:17:11,280 --> 00:17:13,859 Något som berättar om bug vidrör kanten av 315 00:17:13,859 --> 00:17:17,490 skärmen, vilket kommer att vara under de avkännande rapporter. 316 00:17:17,490 --> 00:17:20,630 Här är det här Boolean, Röra. 317 00:17:20,630 --> 00:17:24,359 Och du kan välja här vad du vill söka efter. 318 00:17:24,359 --> 00:17:28,750 Så vi ska välja Touching Edge och lägg detta villkorssats igen 319 00:17:28,750 --> 00:17:34,230 320 00:17:34,230 --> 00:17:38,220 >> Så nu om vi tittar på vår bugg, det ska flytta tillbaka igen när det berör 321 00:17:38,220 --> 00:17:39,470 kanten av scenen. 322 00:17:39,470 --> 00:17:43,100 323 00:17:43,100 --> 00:17:43,810 Bra. 324 00:17:43,810 --> 00:17:47,440 Vi är färdiga med Hungry Dino Zero, så låt oss öppna Hungry Dino One. 325 00:17:47,440 --> 00:17:57,200 326 00:17:57,200 --> 00:18:00,110 Ungefär som ett matlagningsprogram, har jag lagt lite fler funktioner. 327 00:18:00,110 --> 00:18:04,380 Till exempel kommer du att se att felet är faktiskt glider helt enkelt nu 328 00:18:04,380 --> 00:18:05,910 till skillnad från tidigare. 329 00:18:05,910 --> 00:18:08,500 Under rörelse finns det här glida uttalande. 330 00:18:08,500 --> 00:18:17,200 Nu glider buggen 70 enheter till rätt i sitt nuvarande utläggning, men 331 00:18:17,200 --> 00:18:20,060 stannar kvar på samma y-position här. 332 00:18:20,060 --> 00:18:25,440 Och vi kan nu ha en dino chomping som vi genomfört tidigare. 333 00:18:25,440 --> 00:18:29,330 >> Men, är detta program inte kallas Hungry Dion för ingenting så låt oss ha 334 00:18:29,330 --> 00:18:32,390 dino äta felet. 335 00:18:32,390 --> 00:18:36,850 Hur kan vi tala om buggen, eller berätta dino, att man har huggit ner? 336 00:18:36,850 --> 00:18:39,310 Hur kan vi kommunicera detta evenemang? 337 00:18:39,310 --> 00:18:44,520 Tja, vi vet att när vi växlar dräkt för dino till dino segrare 338 00:18:44,520 --> 00:18:45,990 att vi har chomped ned. 339 00:18:45,990 --> 00:18:49,250 Och säga att vi vill felet att försvinna när den har ätit. 340 00:18:49,250 --> 00:18:52,510 Jo, vi måste kolla om felet har chomped på och 341 00:18:52,510 --> 00:18:56,440 meddela bugg som den kommer att ha att dölja eller försvinna från skärmen 342 00:18:56,440 --> 00:18:59,280 när det har varit chomped ned. 343 00:18:59,280 --> 00:19:02,980 >> Så vilken typ av koncept, vilken typ av verktyg kan vi använda för att få dino 344 00:19:02,980 --> 00:19:05,650 meddela bugg som Det har chomped ner? 345 00:19:05,650 --> 00:19:07,120 Broadcasting. 346 00:19:07,120 --> 00:19:13,634 Så låt oss gå till evenemang och lägg en händelse att sända. 347 00:19:13,634 --> 00:19:14,884 Chomp. 348 00:19:14,884 --> 00:19:19,360 349 00:19:19,360 --> 00:19:20,290 OK. 350 00:19:20,290 --> 00:19:24,380 Men kom ihåg att när vi sänder något vi också måste 351 00:19:24,380 --> 00:19:25,660 emot denna händelse. 352 00:19:25,660 --> 00:19:29,240 Så vilken sprite kommer att sända segrare? 353 00:19:29,240 --> 00:19:35,640 Nåväl, låt oss ha det dino gör att då mellanslagstangenten trycks. 354 00:19:35,640 --> 00:19:38,730 >> Låt oss lägga ett block för att ta emot segrare. 355 00:19:38,730 --> 00:19:42,740 Nu, när dino kommer ner bara på ett tomrum som vi inte vill att bugga 356 00:19:42,740 --> 00:19:47,090 att reagera på det alls, endast om dino var vidrör men på den tiden 357 00:19:47,090 --> 00:19:49,870 av chomp gör vi faktiskt göra något. 358 00:19:49,870 --> 00:19:54,020 Så vi kommer att använda villkoret Om eftersom Vi kollar om något är 359 00:19:54,020 --> 00:19:56,380 sant eller inte. 360 00:19:56,380 --> 00:19:59,460 >> Om vi ​​nu går tillbaka till Sensing, då vi kan använda denna röra 361 00:19:59,460 --> 00:20:02,530 blockera och välj Dino. 362 00:20:02,530 --> 00:20:08,550 Då, under Utseende, finner vi detta Dölj kvarter som i princip kommer att göra felet 363 00:20:08,550 --> 00:20:09,845 försvinna från scenen. 364 00:20:09,845 --> 00:20:15,570 365 00:20:15,570 --> 00:20:18,470 >> Vi ska göra det gömmer, men vi gör vill ha en annan bugg, eller hur? 366 00:20:18,470 --> 00:20:19,850 Vår dino är hungrig. 367 00:20:19,850 --> 00:20:22,700 Så vi vill ge den en annan bugg att jaga. 368 00:20:22,700 --> 00:20:31,130 Så låt oss också sända händelsen Ny Bug1. 369 00:20:31,130 --> 00:20:34,022 370 00:20:34,022 --> 00:20:38,830 Utom vi vill att det ska vänta ett tag innan en annan bugg visas, så låt oss 371 00:20:38,830 --> 00:20:40,096 också vänta en sekund. 372 00:20:40,096 --> 00:20:46,718 373 00:20:46,718 --> 00:20:47,670 >> Okej. 374 00:20:47,670 --> 00:20:50,260 Så låt oss kolla här. 375 00:20:50,260 --> 00:20:54,793 Vi chomped ner, en utan försvinner, en annan visas, och vi chomp ned 376 00:20:54,793 --> 00:20:56,430 på den igen. 377 00:20:56,430 --> 00:20:59,160 Detta ser ut som en ganska roligt spel, men alla spel 378 00:20:59,160 --> 00:21:00,460 måste göra mål, eller hur? 379 00:21:00,460 --> 00:21:04,840 Så vad kan vi använda för att hålla reda på hur många buggar det dino har ätit? 380 00:21:04,840 --> 00:21:06,120 En variabel. 381 00:21:06,120 --> 00:21:08,040 Så låt oss lägga till en variabel som heter Score. 382 00:21:08,040 --> 00:21:12,070 383 00:21:12,070 --> 00:21:15,040 >> Och nu får vi bestämma vad omfattning denna variabel. 384 00:21:15,040 --> 00:21:16,380 Så låt oss tänka. 385 00:21:16,380 --> 00:21:19,560 Samtidigt som vi kanske vill det men för att öka ställningen om det har varit 386 00:21:19,560 --> 00:21:22,630 framgångsrikt ätit, och scenen kanske ha något att göra med den 387 00:21:22,630 --> 00:21:26,640 värdering samt, så låt oss tilldela denna variabel till alla sprites. 388 00:21:26,640 --> 00:21:30,210 389 00:21:30,210 --> 00:21:34,440 >> Vi vill öka värdering om, och endast om ett fel har ätit. 390 00:21:34,440 --> 00:21:37,440 Och vi har redan skrivit ett manus som behandlar en bugg äts så 391 00:21:37,440 --> 00:21:41,930 Låt oss lägga detta uttalande in, Byt Betyg By One. 392 00:21:41,930 --> 00:21:44,405 Det betyder att när du äter en bugg poängen ökar. 393 00:21:44,405 --> 00:21:48,400 394 00:21:48,400 --> 00:21:53,221 >> Låt oss spela för lite och äter, Jag vet inte, tre buggar. 395 00:21:53,221 --> 00:21:56,590 396 00:21:56,590 --> 00:21:59,400 Så du tröttnar på spelet, väl, du trycker på den röda stopp 397 00:21:59,400 --> 00:22:00,470 underteckna att stoppa spelet. 398 00:22:00,470 --> 00:22:03,800 Och när du vill komma tillbaka kommer du tryck på den gröna flaggan igen. 399 00:22:03,800 --> 00:22:08,290 Men poängen är fortfarande tre även även om jag spelar ett nytt spel. 400 00:22:08,290 --> 00:22:12,110 Vi vill inte ge användarna ett huvud start, så vi måste återställa 401 00:22:12,110 --> 00:22:15,190 poäng varje gång de starta ett nytt spel. 402 00:22:15,190 --> 00:22:21,370 Så låt oss lägga ett uttalande till scenens inkörsport skript för att ställa in 403 00:22:21,370 --> 00:22:23,810 variabel poäng till noll. 404 00:22:23,810 --> 00:22:31,080 Så nu, när du startar ett spel, poängen börjar på noll. 405 00:22:31,080 --> 00:22:34,420 >> Nu ska vi öppna Hungry Dino 2 där Jag har lagt till några fler saker. 406 00:22:34,420 --> 00:22:38,410 Jag klickade rätt på bugg sprite till duplicera sprite som gjorde en 407 00:22:38,410 --> 00:22:41,020 sprite identisk med min förra. 408 00:22:41,020 --> 00:22:45,620 Poison Bug är väsentligen identisk med Bug1 men jag valde en ny kostym eftersom 409 00:22:45,620 --> 00:22:47,320 Jag tyckte det såg ut, ja, typ av giftiga. 410 00:22:47,320 --> 00:22:51,920 Istället för att öka poängen när giftet bugg äts, faktiskt jag 411 00:22:51,920 --> 00:22:55,890 sänka poängen genom att ändra Betyg från negativ. 412 00:22:55,890 --> 00:22:59,690 >> Och sedan gjorde jag en annan kostym för vår dino med färgen editor för att 413 00:22:59,690 --> 00:23:03,660 gör en sjuk tittar dino och gav den namnet Dino Sick. 414 00:23:03,660 --> 00:23:06,790 Men vi använder inte denna dräkt i vår programmet ännu, så låt oss lägga till några 415 00:23:06,790 --> 00:23:10,200 uttalanden och block som kommer att förändra Dino kostym till den gröna sjuka 416 00:23:10,200 --> 00:23:12,200 dräkt när den äter en förgiftad bugg. 417 00:23:12,200 --> 00:23:16,430 418 00:23:16,430 --> 00:23:20,480 >> Nu, eftersom vi dupliceras bugg spriten, den förgiftade bugg har alla 419 00:23:20,480 --> 00:23:23,230 skript som ursprungliga bugg gör. 420 00:23:23,230 --> 00:23:27,290 Om du vill kopiera över skript från andra sprites, kan du dra 421 00:23:27,290 --> 00:23:30,300 skriptet på toppen av sprite som du vill kopiera till. 422 00:23:30,300 --> 00:23:33,680 Men vi kommer inte att behöva göra det här eftersom den förgiftade bugg har redan en 423 00:23:33,680 --> 00:23:38,010 script som kontrollerar att felet har chomped ner på. 424 00:23:38,010 --> 00:23:41,790 Och vi kan dra nytta av detta för att meddela dino att det åt en 425 00:23:41,790 --> 00:23:43,120 giftiga bugg. 426 00:23:43,120 --> 00:23:46,190 Och vi kommunicerar mellan sprites från sändning. 427 00:23:46,190 --> 00:23:49,326 Så låt oss sända en ny händelse heter Dino Sick. 428 00:23:49,326 --> 00:23:57,270 429 00:23:57,270 --> 00:24:02,180 >> Och vi vet att vi har en kostym för Dino att byta till, men vi också 430 00:24:02,180 --> 00:24:06,120 vet från tidigare att det är bäst att lägga in en paus 431 00:24:06,120 --> 00:24:07,370 mellan klädbyten. 432 00:24:07,370 --> 00:24:10,110 433 00:24:10,110 --> 00:24:21,760 Så när jag får Dino Sick, jag kommer att byta kostym till Dino Sick, vänta 434 00:24:21,760 --> 00:24:32,620 en sekund, och sedan växla tillbaka till Dino Hungry. 435 00:24:32,620 --> 00:24:35,260 436 00:24:35,260 --> 00:24:36,130 Okej. 437 00:24:36,130 --> 00:24:43,600 Låt oss spela vårt spel och äta en bugg och skalbaggen. 438 00:24:43,600 --> 00:24:45,680 Och poängen minskar med ett. 439 00:24:45,680 --> 00:24:52,120 440 00:24:52,120 --> 00:24:57,600 >> Nu, ibland kanske du märker att variabel kan inte visas på 441 00:24:57,600 --> 00:24:59,270 vänstra hörnet av skärmen. 442 00:24:59,270 --> 00:25:03,070 Om du navigerar till Data avsnittet under skript, ser du denna bock 443 00:25:03,070 --> 00:25:05,070 bredvid de variabler som du skapar. 444 00:25:05,070 --> 00:25:09,090 Och döljer eller unhides de variabel från skärmen. 445 00:25:09,090 --> 00:25:12,390 Men du kan också använda ett uttalande heter Show eller 446 00:25:12,390 --> 00:25:14,060 Dölj en viss variabel. 447 00:25:14,060 --> 00:25:19,560 Så låt oss använda denna Score Show Variable till se till att varje gång vi startar 448 00:25:19,560 --> 00:25:23,320 spelet är den rörliga bilden. 449 00:25:23,320 --> 00:25:24,120 Bra. 450 00:25:24,120 --> 00:25:28,220 >> Så låt oss köra spelet och äta en gift bugg direkt. 451 00:25:28,220 --> 00:25:40,410 Nu är det lite konstigt att ha ett spel att få negativa punkter, eller hur? 452 00:25:40,410 --> 00:25:42,990 Så låt oss presentera en annan funktion. 453 00:25:42,990 --> 00:25:46,750 Om dino äter alltför många giftiga buggar då det blir för sjuka och 454 00:25:46,750 --> 00:25:47,890 Spelet är över. 455 00:25:47,890 --> 00:25:52,580 Så för att genomföra detta, kommer vi sända annan händelse, Game Over. 456 00:25:52,580 --> 00:25:56,450 Hur vet vi då att exekvera denna Game Over sändning? 457 00:25:56,450 --> 00:25:58,070 >> Tja, kan vi göra på flera sätt. 458 00:25:58,070 --> 00:26:01,750 Vi kan ha ett manus i stadiet att fortlöpande kontrollerar om poängen 459 00:26:01,750 --> 00:26:04,740 är negativ eller inte, och sändningar Game Over när 460 00:26:04,740 --> 00:26:06,870 ställningen blir negativ. 461 00:26:06,870 --> 00:26:10,750 Eller vi kan dra nytta av det faktum att det enda sättet poängen kunde någonsin 462 00:26:10,750 --> 00:26:13,660 vara negativ, är när en giftig bugg äts. 463 00:26:13,660 --> 00:26:16,860 För när du äter den andra bugg, poängen ökar. 464 00:26:16,860 --> 00:26:19,500 Det är ingen idé att kontrollera om det bör vara Game Over eller inte när du 465 00:26:19,500 --> 00:26:21,110 äta en ätlig bugg. 466 00:26:21,110 --> 00:26:26,000 >> Så vi kan egentligen bara lägga till skript som tar emot Dino Sick 467 00:26:26,000 --> 00:26:28,470 händelse sändning. 468 00:26:28,470 --> 00:26:31,750 Vi vill att instruera dino följande. 469 00:26:31,750 --> 00:26:35,510 Om summan är mindre än noll, sända Game Over. 470 00:26:35,510 --> 00:26:40,590 471 00:26:40,590 --> 00:26:44,550 Så vi ska bygga Score mindre än noll tillstånd att använda ett kvarter från 472 00:26:44,550 --> 00:26:49,020 operatören avsnitt, och dra i vår värdering av det blocket. 473 00:26:49,020 --> 00:26:52,160 474 00:26:52,160 --> 00:26:58,626 Och se här du kan bara dra variabel poäng och lägga mindre än noll. 475 00:26:58,626 --> 00:27:07,824 Och vi kommer att sända en ny händelse, Game Over. 476 00:27:07,824 --> 00:27:15,080 477 00:27:15,080 --> 00:27:18,430 >> Men om poängen inte har gått under noll, vill vi dino till 478 00:27:18,430 --> 00:27:19,480 fortsätta spelet. 479 00:27:19,480 --> 00:27:23,310 Så istället för att använda en om här, låt oss använda en if annars konstruera. 480 00:27:23,310 --> 00:27:28,960 481 00:27:28,960 --> 00:27:33,050 En om annat konstruera berättar vår dino till göra en sak om villkoret är sant 482 00:27:33,050 --> 00:27:35,580 och en annan sak om villkoret är falskt. 483 00:27:35,580 --> 00:27:39,390 Kroppen av vår första om kan gå in i den om annat, så låt oss dra det i. 484 00:27:39,390 --> 00:27:45,020 485 00:27:45,020 --> 00:27:48,760 Men om poängen inte är mindre än noll, så låt oss gå tillbaka till 486 00:27:48,760 --> 00:27:50,760 Hungry Dino kostym. 487 00:27:50,760 --> 00:27:54,930 Vi vill inte göra det preemptively. 488 00:27:54,930 --> 00:27:56,150 Bra. 489 00:27:56,150 --> 00:27:58,830 >> Men eftersom vi sänder Game Over, Vi måste fortfarande göra en 490 00:27:58,830 --> 00:28:00,980 händelse mottagare blocket. 491 00:28:00,980 --> 00:28:06,300 Det finns faktiskt en Stop All uttalande i kontroll, så vi koppla detta till 492 00:28:06,300 --> 00:28:08,070 när jag får Game Over. 493 00:28:08,070 --> 00:28:21,490 494 00:28:21,490 --> 00:28:26,580 Men vi vill också felet att stoppa, så Låt oss dra detta script på alla 495 00:28:26,580 --> 00:28:32,430 felet älvor liksom scenen. 496 00:28:32,430 --> 00:28:34,560 Låt oss prova detta. 497 00:28:34,560 --> 00:28:42,500 >> Att äta en giftig bugg direkt, Programmet slutar som förväntat. 498 00:28:42,500 --> 00:28:46,040 Ingen av de andra buggar flytta och varken gör dino om du trycker 499 00:28:46,040 --> 00:28:47,250 ner piltangenterna. 500 00:28:47,250 --> 00:28:51,240 Men låt oss säga att vi inte vill att påminna användaren av deras negativa poäng, så 501 00:28:51,240 --> 00:28:55,020 Vi gömmer den rörliga Betyg från scenen när spelet 502 00:28:55,020 --> 00:28:56,270 Över händelsen tas emot. 503 00:28:56,270 --> 00:29:00,240 504 00:29:00,240 --> 00:29:01,230 Okej. 505 00:29:01,230 --> 00:29:02,920 >> Så detta är ett ganska anständigt spel. 506 00:29:02,920 --> 00:29:06,270 Med mer tid du kan lägga till fler sprites och fler manus. 507 00:29:06,270 --> 00:29:08,550 Kanske buggar kan flytta vid olika hastigheter. 508 00:29:08,550 --> 00:29:10,880 Du kan lägga till en ny bakgrund till scenen - 509 00:29:10,880 --> 00:29:12,560 en Game Over bakgrund - 510 00:29:12,560 --> 00:29:16,660 så att, när steget mottager Game Over händelse, kan det växla till 511 00:29:16,660 --> 00:29:19,740 Game Over bakgrund och alla av sprites hide. 512 00:29:19,740 --> 00:29:23,950 Massor av mindre anpassningar kan göras för att göra ditt spel lite mer polerad. 513 00:29:23,950 --> 00:29:27,630 >> Och detta är bara ett exempel på en projekt som du kan göra i Scratch 514 00:29:27,630 --> 00:29:29,990 använda alla de verktyg som vi diskuterat tidigare - 515 00:29:29,990 --> 00:29:34,330 sprites, kostymer, scener, kulisser, villkor, loopar, variabler, 516 00:29:34,330 --> 00:29:37,000 sändningar händelser och trådar. 517 00:29:37,000 --> 00:29:40,140 Hungry Dino använder inte något ljud effekter, men du kan enkelt lägga till din 518 00:29:40,140 --> 00:29:47,650 egen genom att gå till fliken Ljud och utforska de sunda uttalanden. 519 00:29:47,650 --> 00:29:51,050 Scratch är en bra introduktion till programmering begrepp, så vara kreativ 520 00:29:51,050 --> 00:29:53,680 och, viktigast av allt, ha kul. 521 00:29:53,680 --> 00:29:56,420 Mitt namn är Zamyla, och detta är CS50. 522 00:29:56,420 --> 00:30:03,072