1 00:00:07,980 --> 00:00:08,470 [Powered by Google Translate] ZAMYLA CHAN: Okej. 2 00:00:08,470 --> 00:00:10,960 Hej, alla, och välkomna till Walkthrough 0. 3 00:00:10,960 --> 00:00:12,670 Mitt namn är Zamyla, och jag kommer att leda dessa 4 00:00:12,670 --> 00:00:14,450 genomgångar i år. 5 00:00:14,450 --> 00:00:17,650 Under CS50 är alla problem set tillsammans med en genomgång 6 00:00:17,650 --> 00:00:20,390 där vi ska gå igenom veckans problemet set, prata 7 00:00:20,390 --> 00:00:22,760 igenom, prata hur du kommer igång, diskutera olika 8 00:00:22,760 --> 00:00:26,120 tekniker och tips för att verkligen bryta problemet satt i 9 00:00:26,120 --> 00:00:27,600 några hanterbara biter. 10 00:00:27,600 --> 00:00:29,630 Jag är också väldigt glad att besvara alla frågor som du 11 00:00:29,630 --> 00:00:31,440 har på problemet set. 12 00:00:31,440 --> 00:00:33,320 Utan vidare, jag är glad att du är här, oavsett om du är 13 00:00:33,320 --> 00:00:35,590 Här personligen eller trimning på nätet. 14 00:00:35,590 --> 00:00:36,840 Låt oss komma igång. 15 00:00:39,940 --> 00:00:42,420 >> Så den första p-uppsättning i CS50 - 16 00:00:42,420 --> 00:00:44,590 faktiskt, vi kommer inte att komma in skriva och maskin 17 00:00:44,590 --> 00:00:45,630 kod grejer riktigt än. 18 00:00:45,630 --> 00:00:47,360 Vi har faktiskt kommer att använda Scratch, som är ett 19 00:00:47,360 --> 00:00:49,860 program som tillåter oss att göra några drag och släpp 20 00:00:49,860 --> 00:00:50,780 programmering. 21 00:00:50,780 --> 00:00:54,020 Och så även om vi inte skriver, gör det verkligen för oss att 22 00:00:54,020 --> 00:00:55,870 utforska några av de grundläggande begrepp som 23 00:00:55,870 --> 00:00:58,710 Vi kommer att använda alla i hela CS50. 24 00:00:58,710 --> 00:01:01,260 Nu, några av dessa begrepp är 25 00:01:01,260 --> 00:01:02,860 listade här i verktygslådan. 26 00:01:02,860 --> 00:01:05,830 Vad jag skulle vilja göra för varje genomgång är presentera alla 27 00:01:05,830 --> 00:01:08,390 med en uppsättning verktyg som du kan använda för genomgång. 28 00:01:08,390 --> 00:01:09,140 Och så, oroa dig inte. 29 00:01:09,140 --> 00:01:11,710 Vi ska gå igenom alla dessa villkor och alla dessa 30 00:01:11,710 --> 00:01:13,320 teorier under genomgången. 31 00:01:13,320 --> 00:01:15,790 Nu, om du slutar använda alla dessa verktyg, eller bara 32 00:01:15,790 --> 00:01:19,340 några av dem, det är verkligen bra att veta vad du har 33 00:01:19,340 --> 00:01:21,225 med att kunna ta itu med problemet set. 34 00:01:25,650 --> 00:01:29,110 >> Så i Scratch, är det första jargong som du måste veta vad 35 00:01:29,110 --> 00:01:30,110 en sprite är. 36 00:01:30,110 --> 00:01:34,280 Så varje föremål eller varje tecken, oavsett om det är en katt en hund 37 00:01:34,280 --> 00:01:36,450 eller en boll, kallas en sprite. 38 00:01:36,450 --> 00:01:40,710 Och så, om jag vill, säger två katter - oavsett om de är 39 00:01:40,710 --> 00:01:41,360 identiska - 40 00:01:41,360 --> 00:01:45,630 Jag måste göra två separata sprites i Scratch. 41 00:01:45,630 --> 00:01:49,250 Och så sprites har manus associerade med dem. 42 00:01:49,250 --> 00:01:51,360 Skript är faktiskt vad du kommer att bli byggnad - 43 00:01:51,360 --> 00:01:53,290 dra och släppa - med dina block. 44 00:01:53,290 --> 00:01:57,490 Och så vad skript gör är typ av bestämma och definiera hur 45 00:01:57,490 --> 00:02:00,090 spriten fungerar. 46 00:02:00,090 --> 00:02:03,130 Sprites är faktiskt inte bara bilder, eftersom vi har 47 00:02:03,130 --> 00:02:05,790 dräkter också förknippade med sprites denna typ av 48 00:02:05,790 --> 00:02:07,430 avgöra vad spriten ser ut. 49 00:02:07,430 --> 00:02:11,000 Och du kan ha mer än en kostym för en given sprite. 50 00:02:11,000 --> 00:02:14,860 >> Så någon gång under din Scratch programmet, som vi ska visa 51 00:02:14,860 --> 00:02:17,150 senare i dag under genomgång, kan du faktiskt 52 00:02:17,150 --> 00:02:19,640 ändra kostym på din sprite så att det ser antingen 53 00:02:19,640 --> 00:02:22,490 något annorlunda eller helt annorlunda. 54 00:02:22,490 --> 00:02:26,290 Och så finns det tre sätt att skapa en sprite i Scratch. 55 00:02:26,290 --> 00:02:28,970 En, kan du rita din egen i Scratch s 56 00:02:28,970 --> 00:02:30,430 byggt i färg redaktör. 57 00:02:30,430 --> 00:02:35,240 Du kan ladda upp din egen bild, använd en av Scratch: s inbyggda 58 00:02:35,240 --> 00:02:38,590 sådana, eller det sista alternativet, få ett slumpmässigt sprite. 59 00:02:38,590 --> 00:02:41,760 Nu, om du känner dig särskilt lycklig, då jag 60 00:02:41,760 --> 00:02:45,120 Välkommen att prova lyckan och skapar en slumpmässig sprite. 61 00:02:48,680 --> 00:02:50,890 >> Så alla sprites placeras på 62 00:02:50,890 --> 00:02:52,290 scenen i Scratch. 63 00:02:52,290 --> 00:02:55,130 Scenen - vi kan behandla det som vår duk. 64 00:02:55,130 --> 00:02:57,510 Och så alla sprites placeras på scenen. 65 00:02:57,510 --> 00:03:02,920 Och detta skede vad det gör tillåter alla sprites 66 00:03:02,920 --> 00:03:04,160 att röra sig på det. 67 00:03:04,160 --> 00:03:09,380 Och precis som sprites, har scenen också skript. 68 00:03:09,380 --> 00:03:11,930 Och så dessa skript, för att placera dem på scenen - 69 00:03:11,930 --> 00:03:14,230 det är verkligen bra när, säg, har du ett manus som inte 70 00:03:14,230 --> 00:03:17,720 exakt avser en specifik sprite, utan 71 00:03:17,720 --> 00:03:20,860 avser flera sprites eller bara i allmänhet, något 72 00:03:20,860 --> 00:03:21,870 som du vill göra. 73 00:03:21,870 --> 00:03:25,070 Så du kan placera dessa skript på scenen i stället, och att 74 00:03:25,070 --> 00:03:28,010 skulle vara något bättre design. 75 00:03:28,010 --> 00:03:32,680 Nu, när du kan ha flera sprites, det är bra att 76 00:03:32,680 --> 00:03:34,420 Tänk på att du bara kan ha ett steg. 77 00:03:34,420 --> 00:03:37,820 Men steg har också bakgrunder. 78 00:03:37,820 --> 00:03:40,590 I motsats till kostymer, som sprites gör, steg har 79 00:03:40,590 --> 00:03:41,100 bakgrund. 80 00:03:41,100 --> 00:03:44,340 Och igen, kan du rita antingen din egen eller ladda upp din egen 81 00:03:44,340 --> 00:03:46,140 bild som ska användas som bakgrund. 82 00:03:49,770 --> 00:03:54,100 >> Så har någon några frågor innan vi går vidare? 83 00:03:54,100 --> 00:03:54,380 OK. 84 00:03:54,380 --> 00:03:56,880 Känn dig fri att avbryta mig vad under genomgång och 85 00:03:56,880 --> 00:03:58,780 Jag är glad att besvara alla frågor du har. 86 00:04:02,750 --> 00:04:03,230 OK. 87 00:04:03,230 --> 00:04:05,950 Så när du startar din sprite programmet, vad du ska 88 00:04:05,950 --> 00:04:08,430 göra är att du kommer att klicka på den gröna flaggan. 89 00:04:08,430 --> 00:04:10,820 Men om du inte ansluter något till detta block rätt 90 00:04:10,820 --> 00:04:13,400 Här sedan ingenting är faktiskt kommer att hända. 91 00:04:13,400 --> 00:04:16,450 Jo, ser du, vad manus och scenen behöver 92 00:04:16,450 --> 00:04:20,149 göra är faktiskt vet att svara på händelsen - 93 00:04:20,149 --> 00:04:22,360 Det är vad vi kallar dem, evenemang - den gröna flaggan 94 00:04:22,360 --> 00:04:23,200 som klickade. 95 00:04:23,200 --> 00:04:26,840 Så du måste verkligen fästa block till spåret vid 96 00:04:26,840 --> 00:04:30,270 botten av den gröna klickade flaggan blocket, och sedan 97 00:04:30,270 --> 00:04:32,670 Programmet kommer att veta vad man ska göra och hur man ska bemöta de 98 00:04:32,670 --> 00:04:35,700 gröna flaggan som klickade. 99 00:04:35,700 --> 00:04:38,180 >> Nå, vad kommer sedan? 100 00:04:38,180 --> 00:04:43,930 Tja, vi har en uppsjö av block i grunden för att använda, och 101 00:04:43,930 --> 00:04:47,150 var köttet, verkligen, av ditt program ligger i dessa 102 00:04:47,150 --> 00:04:48,000 uttalanden. 103 00:04:48,000 --> 00:04:49,900 Och så dessa uttalanden är bekvämt 104 00:04:49,900 --> 00:04:51,270 organiseras av färg. 105 00:04:51,270 --> 00:04:54,970 Du har åtgärder relaterade till rörelsen, 106 00:04:54,970 --> 00:04:56,930 ljud, utseende, et cetera. 107 00:04:56,930 --> 00:04:59,530 Och så att du kan se kan du navigera mellan dem i 108 00:04:59,530 --> 00:05:02,480 flikar i din Scratch program. 109 00:05:02,480 --> 00:05:04,870 Och så, medan du har andra saker byggda runt det, 110 00:05:04,870 --> 00:05:08,520 vad de uttalanden faktiskt faktiskt berättar 111 00:05:08,520 --> 00:05:10,380 sprites eller på scenen för att göra något. 112 00:05:10,380 --> 00:05:13,450 Och inte bara säga, OK, när du gör detta, 113 00:05:13,450 --> 00:05:16,660 rapporterna innehåller faktiskt den verkliga kött av det. 114 00:05:19,410 --> 00:05:22,210 Låt oss säga att du vill bara köra en viss åtgärd, säger 115 00:05:22,210 --> 00:05:26,180 du bara katten att jama när en viss sak händer. 116 00:05:26,180 --> 00:05:28,430 Vi kan dra nytta av Booleans som du lärt dig i 117 00:05:28,430 --> 00:05:29,470 föreläsning ett. 118 00:05:29,470 --> 00:05:32,580 Och så dessa är uttryck som utvärderas till 119 00:05:32,580 --> 00:05:34,140 antingen sant eller falskt. 120 00:05:34,140 --> 00:05:37,510 Och så dessa identifieras i Scratch av - 121 00:05:37,510 --> 00:05:42,360 ser vinklarna vid slutet av dessa block. 122 00:05:42,360 --> 00:05:45,420 Och så har du en mängd olika typer av Booleans. 123 00:05:45,420 --> 00:05:49,550 Du har "är den mest pressas ned," "gör 2 plus 2 124 00:05:49,550 --> 00:05:53,830 likställa till 5, "eller" användaren trycka ner en viss tangent på 125 00:05:53,830 --> 00:05:55,510 tangentbordet? " 126 00:05:55,510 --> 00:05:57,210 >> Nu kan du inte bara använda dessa ensam. 127 00:05:57,210 --> 00:06:00,970 Vad du behöver göra är att kombinera dem med ett villkor. 128 00:06:00,970 --> 00:06:04,420 Så villkoret är där under kontroll fliken i Scratch. 129 00:06:04,420 --> 00:06:07,350 Och så har de lämpligen en liten platshållare som 130 00:06:07,350 --> 00:06:10,940 visar formen på det block som du behöver för att sätta i det. 131 00:06:10,940 --> 00:06:14,720 Så beroende på sammanhanget av situationen, kan du välja 132 00:06:14,720 --> 00:06:17,600 en boolesk och sedan placera den i ditt tillstånd. 133 00:06:17,600 --> 00:06:19,570 Och där har du en villkorlig uttalande. 134 00:06:19,570 --> 00:06:23,030 Om du lägger uttalanden inne som blockerar, så har du en 135 00:06:23,030 --> 00:06:26,980 struktur som inrättats, där en gång ett visst villkor är uppfyllt på 136 00:06:26,980 --> 00:06:30,494 vänster, kör du sedan uttalandet. 137 00:06:30,494 --> 00:06:31,462 Ja? 138 00:06:31,462 --> 00:06:33,720 >> STUDENT: Om en variabel representerar ett nummer kan du 139 00:06:33,720 --> 00:06:36,302 använda variabeln inuti Boolean, som den gröna, 140 00:06:36,302 --> 00:06:36,790 till exempel? 141 00:06:36,790 --> 00:06:37,540 ZAMYLA CHAN: Ja, du kan. 142 00:06:37,540 --> 00:06:41,500 Du kan dra och släppa variabelvärdet inuti 143 00:06:41,500 --> 00:06:42,750 cirkulär form där. 144 00:06:48,820 --> 00:06:52,160 >> Nu är en av fördelarna med datorer stora kraften 145 00:06:52,160 --> 00:06:54,980 och hastighet med vilken de kan utföra repetitiva processer. 146 00:06:54,980 --> 00:07:00,370 Och så, i stället för, säg, upprepa en instruktion över 147 00:07:00,370 --> 00:07:03,020 och om och om igen och faktiskt skriva ut det - eller 148 00:07:03,020 --> 00:07:05,000 i detta fall i Scratch, dra och släppa och 149 00:07:05,000 --> 00:07:05,960 dra och släppa - 150 00:07:05,960 --> 00:07:08,750 vad vi kan göra är att kapsla in det i en slinga. 151 00:07:08,750 --> 00:07:11,640 Och så, kan slingor användas för att antingen utföra saker 152 00:07:11,640 --> 00:07:14,750 oändligt med evigt slinga, eller för en 153 00:07:14,750 --> 00:07:15,880 visst antal gånger - 154 00:07:15,880 --> 00:07:20,800 säger, upprepa "Säg hej" 10 gånger eller tills ett visst 155 00:07:20,800 --> 00:07:22,040 villkor är sant. 156 00:07:22,040 --> 00:07:26,370 Och så igen, ser du att grunden är antyder att när 157 00:07:26,370 --> 00:07:29,540 du har ett tillstånd som "repeat tills" då det enda 158 00:07:29,540 --> 00:07:34,760 sak som passar inuti finns ett booleskt värde. 159 00:07:34,760 --> 00:07:35,120 Okej. 160 00:07:35,120 --> 00:07:38,170 >> Så nu vet vi att vi kan kapsla repetitiva 161 00:07:38,170 --> 00:07:39,840 processer inuti slingor. 162 00:07:39,840 --> 00:07:42,880 Du kan se varför något sådant inte skulle vara perfekt. 163 00:07:42,880 --> 00:07:45,600 Det passar inte på bilden. 164 00:07:45,600 --> 00:07:48,500 I huvudsak, det gör det precis samma sak om och om igen 165 00:07:48,500 --> 00:07:49,340 10 gånger, faktiskt. 166 00:07:49,340 --> 00:07:53,380 Det rör sig 10 steg, säger hej, flyttar 10 steg, säger hej. 167 00:07:53,380 --> 00:07:56,140 Så nu kan du se att när vi har öglor, något som 168 00:07:56,140 --> 00:07:58,420 Detta är mycket bättre. 169 00:07:58,420 --> 00:08:02,690 Det är kortare, det mindre, och det faktiskt slutför 170 00:08:02,690 --> 00:08:03,610 samma sak. 171 00:08:03,610 --> 00:08:06,420 Nu i Scratch inte kan göra mycket av en skillnad, men 172 00:08:06,420 --> 00:08:08,510 det sparar faktiskt dig lite tid. 173 00:08:12,720 --> 00:08:16,800 >> Så på den rörliga uttrycket - 174 00:08:16,800 --> 00:08:20,260 Du kan faktiskt använda variabler och sätta dem inne i 175 00:08:20,260 --> 00:08:20,930 förhållanden. 176 00:08:20,930 --> 00:08:23,490 Som uttrycks där, ser du att vi har en variabel som heter 177 00:08:23,490 --> 00:08:26,810 "Motverka", och vi likställa att se om 178 00:08:26,810 --> 00:08:28,040 det är mindre än 0. 179 00:08:28,040 --> 00:08:30,900 Så variabler huvudsak skulle jag säga, 180 00:08:30,900 --> 00:08:32,330 behållare för värden. 181 00:08:32,330 --> 00:08:36,330 I Scratch kan dessa typer av värden vara antingen ord eller 182 00:08:36,330 --> 00:08:37,390 de kan vara tal. 183 00:08:37,390 --> 00:08:41,860 Och så, med dessa variabler, vad vi kan göra med dem är att vi 184 00:08:41,860 --> 00:08:42,970 kan ställa sitt värde. 185 00:08:42,970 --> 00:08:46,590 Så i det första exemplet här har vi ett exempel på text 186 00:08:46,590 --> 00:08:50,470 innehåller värdet "Hello, World!" I det andra exemplet, 187 00:08:50,470 --> 00:08:53,220 det förutsätts att vi redan har en variabel som heter 188 00:08:53,220 --> 00:08:56,020 "Motverka", och i så fall, vi ändrar det med 3. 189 00:08:56,020 --> 00:08:58,170 Vi uppräkning genom 3. 190 00:08:58,170 --> 00:09:01,680 Och sedan i det sista exemplet, kan variablerna dras 191 00:09:01,680 --> 00:09:04,320 sättas i ett booleskt uttryck. 192 00:09:06,830 --> 00:09:12,200 >> Nu, när du skapar en variabel, vad du har att 193 00:09:12,200 --> 00:09:16,900 avgöra är om du gör variabel för alla 194 00:09:16,900 --> 00:09:19,380 sprites i ditt Scratch program eller för bara 195 00:09:19,380 --> 00:09:22,710 detaljer sprite där du har valt när du gör 196 00:09:22,710 --> 00:09:23,930 variabeln. 197 00:09:23,930 --> 00:09:27,480 Och så detta är ett mycket viktigt beslut att fatta. 198 00:09:27,480 --> 00:09:30,100 Och det kommer verkligen ner till vilket utrymme du vill 199 00:09:30,100 --> 00:09:31,200 variabel ha. 200 00:09:31,200 --> 00:09:35,170 Så till exempel, skulle ett exempel på lokal omfattning vara om du 201 00:09:35,170 --> 00:09:38,370 Välj bara för denna sprite att variabeln. 202 00:09:38,370 --> 00:09:43,250 Så det skulle betyda att endast den sprite skulle kunna 203 00:09:43,250 --> 00:09:44,440 komma åt den variabeln. 204 00:09:44,440 --> 00:09:46,670 Bara att sprite skulle kunna se det, 205 00:09:46,670 --> 00:09:48,020 ändra det, ändra det. 206 00:09:48,020 --> 00:09:49,910 Om du väljer att ha en global räckvidd - 207 00:09:49,910 --> 00:09:52,520 så det är om man säger till alla sprites, om 208 00:09:52,520 --> 00:09:53,960 du väljer detta alternativ - 209 00:09:53,960 --> 00:09:57,780 då innebär det att scenen liksom alla sprites 210 00:09:57,780 --> 00:10:01,350 kommer att kunna se, ändra och komma åt den variabeln som 211 00:10:01,350 --> 00:10:04,420 du har skapat. 212 00:10:04,420 --> 00:10:07,080 Eventuella frågor hittills på variabler eller något? 213 00:10:07,080 --> 00:10:08,674 Ja. 214 00:10:08,674 --> 00:10:11,248 >> STUDENTEN för variablerna, kan du ha två variabler 215 00:10:11,248 --> 00:10:14,300 samma namn om de är på olika sprites? 216 00:10:14,300 --> 00:10:16,370 ZAMYLA CHAN: Så länge de är lokala sprites --- 217 00:10:18,870 --> 00:10:20,700 Ah, ja, förlåt. 218 00:10:20,700 --> 00:10:24,010 Så frågan var om du kan ha två variabler 219 00:10:24,010 --> 00:10:28,890 samma namn i ett program och om du har två variabler med 220 00:10:28,890 --> 00:10:32,760 samma namn men är både lokala sprites, så sprite en, 221 00:10:32,760 --> 00:10:36,070 katten har ett variabelnamn "räknare" och sprite två, 222 00:10:36,070 --> 00:10:38,870 hund, har en variabel med namnet "disk", så länge som de 223 00:10:38,870 --> 00:10:43,040 är såväl lokala sprites, då deras räckvidd inte omfattar 224 00:10:43,040 --> 00:10:44,540 resten av programmet. 225 00:10:44,540 --> 00:10:47,080 Och så att ingen av de andra sprites eller 226 00:10:47,080 --> 00:10:48,360 steg kommer att bli förvirrad. 227 00:10:53,860 --> 00:10:54,210 Okej. 228 00:10:54,210 --> 00:10:58,230 >> Så jag nämnde tidigare ingångspunkten när vi hade 229 00:10:58,230 --> 00:11:01,560 när grön flaggade klickade blocket. 230 00:11:01,560 --> 00:11:05,350 Och så vad det är - 231 00:11:05,350 --> 00:11:08,880 det säger, OK, när händelsen inträffar att den gröna flaggan är 232 00:11:08,880 --> 00:11:11,450 klickade, det är vad du ska göra. 233 00:11:11,450 --> 00:11:13,220 Och så är faktiskt inte den enda händelsen 234 00:11:13,220 --> 00:11:14,380 som vi har i Scratch. 235 00:11:14,380 --> 00:11:16,060 Vi har även andra evenemang. 236 00:11:16,060 --> 00:11:18,320 Så vi har, till exempel, när en tangent på 237 00:11:18,320 --> 00:11:19,290 tangentbordet trycks ned. 238 00:11:19,290 --> 00:11:23,660 Och du kan faktiskt välja bokstäverna A till Z, 0 239 00:11:23,660 --> 00:11:27,270 till 9, eller piltangenterna. 240 00:11:27,270 --> 00:11:30,770 Och så har vi även andra händelser, som när 241 00:11:30,770 --> 00:11:33,150 sprite klickas. 242 00:11:33,150 --> 00:11:36,590 Och så när du börjar med det, märker du den viktigaste trenden 243 00:11:36,590 --> 00:11:38,950 är att de bara har ett spår på botten, och så 244 00:11:38,950 --> 00:11:42,950 då återigen fäster tangenter dig i att ingenting ovan 245 00:11:42,950 --> 00:11:43,640 detta block. 246 00:11:43,640 --> 00:11:48,770 Du bygger från och nedan. 247 00:11:48,770 --> 00:11:53,040 >> Nu, säg, vad händer om vi vill ha lite händelse att hända bara 248 00:11:53,040 --> 00:11:58,200 när jag inte vet, en katt vidrör en viss del av 249 00:11:58,200 --> 00:11:59,830 scenen eller något liknande? 250 00:11:59,830 --> 00:12:02,420 Vi har faktiskt inte har någon inbyggd 251 00:12:02,420 --> 00:12:04,410 händelse att beteckna det. 252 00:12:04,410 --> 00:12:07,850 Så vad vi måste göra är att faktiskt skapa vår egen händelse. 253 00:12:07,850 --> 00:12:09,950 Och det kallas sändningar. 254 00:12:09,950 --> 00:12:13,070 Så när du vill signalera att en viss har hänt, 255 00:12:13,070 --> 00:12:16,910 då du använder - i kontrollgruppen fliken finns ett block som kallas 256 00:12:16,910 --> 00:12:20,400 "Sänds." Och så då kommer du skriva in namnet på den 257 00:12:20,400 --> 00:12:24,990 Om du vill sända, och sedan beroende 258 00:12:24,990 --> 00:12:26,350 Sprite eller sprites - 259 00:12:26,350 --> 00:12:28,640 Du kan ha flera sprites reagerar på detta meddelande - 260 00:12:28,640 --> 00:12:31,460 eller scenen måste hantera det, måste 261 00:12:31,460 --> 00:12:34,970 emot den, måste säga, OK, jag förstår att detta har 262 00:12:34,970 --> 00:12:37,850 hände, så jag ska göra med det. 263 00:12:37,850 --> 00:12:40,850 Och så när du sänder ett evenemang, det är med 264 00:12:40,850 --> 00:12:44,870 förutsättning att vardera att sprite eller annan sprite är 265 00:12:44,870 --> 00:12:47,860 kommer att behöva ta emot denna händelse och svara. 266 00:12:52,610 --> 00:12:55,710 >> Nu, den sista konceptet innan vi får till en verklig exempel 267 00:12:55,710 --> 00:12:58,390 av ett Scratch program är gängor. 268 00:12:58,390 --> 00:13:02,110 Så trådar är när datorn körs 269 00:13:02,110 --> 00:13:04,320 samtidiga processer samtidigt. 270 00:13:04,320 --> 00:13:06,940 Jag garanterar er att vi alla har dragit nytta av 271 00:13:06,940 --> 00:13:09,810 trådar när vi vi titta på en film samtidigt som 272 00:13:09,810 --> 00:13:11,540 skriva en uppsats eller något liknande. 273 00:13:11,540 --> 00:13:14,020 Datorn utför flera saker samtidigt 274 00:13:14,020 --> 00:13:17,480 tid, precis som Scratch kan. 275 00:13:17,480 --> 00:13:22,060 Som du kan se i det här exemplet, dessa två skript kan 276 00:13:22,060 --> 00:13:25,460 användas för exakt samma spriten, eftersom dessa 277 00:13:25,460 --> 00:13:27,590 början block Entry Point kan faktiskt används 278 00:13:27,590 --> 00:13:28,840 multiplar gånger. 279 00:13:28,840 --> 00:13:32,570 Jag garanterar er att förmodligen den gröna flaggan klickade blocket 280 00:13:32,570 --> 00:13:36,890 kommer att vara en av de mest populära 281 00:13:36,890 --> 00:13:39,230 block i ditt program. 282 00:13:39,230 --> 00:13:43,500 Så här ser vi att när den gröna flaggan klickas, det finns 283 00:13:43,500 --> 00:13:47,970 en process som pågår, liksom när den gröna flaggan är 284 00:13:47,970 --> 00:13:50,150 klickade, det finns en separat process pågår. 285 00:13:50,150 --> 00:13:53,650 Och så Scratch körs dessa två samtidigt. 286 00:13:53,650 --> 00:13:55,930 Och så använder dessa trådar, att veta att du faktiskt kan 287 00:13:55,930 --> 00:13:58,010 har mer än en ingång - 288 00:13:58,010 --> 00:14:00,450 även om det är samma ingång - 289 00:14:00,450 --> 00:14:04,340 det kommer att bli riktigt bra om du vill, säg, 290 00:14:04,340 --> 00:14:06,290 separera olika uppgifter från varandra. 291 00:14:10,060 --> 00:14:10,490 Okej. 292 00:14:10,490 --> 00:14:17,670 Så låt oss faktiskt undersöka ett exempel på ett Scratch-program. 293 00:14:25,790 --> 00:14:26,360 >> OK. 294 00:14:26,360 --> 00:14:29,150 Så jag har redan gjort ett litet program för oss här. 295 00:14:29,150 --> 00:14:34,740 Så jag ska bara klicka på den gröna flaggan för att starta och se 296 00:14:34,740 --> 00:14:36,520 vad den gör. 297 00:14:36,520 --> 00:14:39,590 Så vi har en orange fisk här - 298 00:14:39,590 --> 00:14:41,420 en fisk sprite - 299 00:14:41,420 --> 00:14:47,960 verkar röra sig och sedan återställa och gå tillbaka. 300 00:14:47,960 --> 00:14:49,250 Och sedan har vi en haj sprite. 301 00:14:49,250 --> 00:14:51,705 Och detta haj sprite kan flytta, det kan rotera, kan det 302 00:14:51,705 --> 00:14:53,180 simma runt. 303 00:14:53,180 --> 00:14:53,520 OK. 304 00:14:53,520 --> 00:14:56,650 Så det är ganska kul. 305 00:14:56,650 --> 00:15:00,750 Men vi kan definitivt lägga mer till det. 306 00:15:00,750 --> 00:15:05,790 Till exempel ser vi att när hajen rör sig, det kan 307 00:15:05,790 --> 00:15:07,740 faktiskt få av skärmen och nästan 308 00:15:07,740 --> 00:15:11,150 försvinner ur sikte. 309 00:15:11,150 --> 00:15:13,010 Så vi vill ändra på det, eftersom vi inte vill att 310 00:15:13,010 --> 00:15:14,610 haj att fly. 311 00:15:14,610 --> 00:15:19,840 Och så låt oss sluta vårt skript och sedan redigera haj 312 00:15:19,840 --> 00:15:22,720 skript, kanske lägga till något. 313 00:15:22,720 --> 00:15:27,400 Notera att i detta speciella sprite här, evigt slingan 314 00:15:27,400 --> 00:15:29,160 slutar med en rak kant. 315 00:15:29,160 --> 00:15:30,920 Det har inte någon skåra. 316 00:15:30,920 --> 00:15:34,410 Så i själva verket är vettigt, eftersom det är en evighet slinga. 317 00:15:34,410 --> 00:15:37,430 Det utför något oändligt. 318 00:15:37,430 --> 00:15:40,240 Så det kommer aldrig sluta. 319 00:15:40,240 --> 00:15:41,810 Även om det var något under det, skulle 320 00:15:41,810 --> 00:15:43,030 aldrig få till det. 321 00:15:43,030 --> 00:15:49,000 Så du faktiskt tvungen att införa en tråd. 322 00:15:49,000 --> 00:15:49,500 >> Okej. 323 00:15:49,500 --> 00:15:52,490 Så låt oss lägga till ytterligare skript. 324 00:15:52,490 --> 00:15:55,210 Så jag ska börja med denna ingång om när grön 325 00:15:55,210 --> 00:15:56,850 flagga klickas. 326 00:15:56,850 --> 00:16:04,900 Så vad jag vill göra är att kontrollera fortlöpande om 327 00:16:04,900 --> 00:16:07,210 haj kommer att röra kanten. 328 00:16:07,210 --> 00:16:10,560 Men jag vet att, faktiskt, enligt Motion finns en snygg 329 00:16:10,560 --> 00:16:16,170 liten block som säger, åh, om på kanten, studsa. 330 00:16:16,170 --> 00:16:18,930 Så vad vi vill göra är att ständigt köra. 331 00:16:18,930 --> 00:16:22,010 Och så vad detta "om på kanten, studsa" gör - det faktiskt 332 00:16:22,010 --> 00:16:26,170 redan kontrollerar om jag är på kanten, sedan studsa tillbaka. 333 00:16:26,170 --> 00:16:31,770 Så vi måste hitta någon form av ögla att kontinuerligt 334 00:16:31,770 --> 00:16:34,350 utföra detta uttalande. 335 00:16:34,350 --> 00:16:37,360 Så om vi ser under kontroll, har någon en idé om 336 00:16:37,360 --> 00:16:42,060 vilken slinga vi kanske vill använda? 337 00:16:42,060 --> 00:16:42,530 Ja. 338 00:16:42,530 --> 00:16:43,470 >> STUDENTEN Den evigt slinga. 339 00:16:43,470 --> 00:16:44,300 ZAMYLA CHAN: Exakt, ja. 340 00:16:44,300 --> 00:16:45,080 Den evigt slinga. 341 00:16:45,080 --> 00:16:48,370 Så låt oss reda att här, och sedan säga, om på kanten, studsa. 342 00:16:48,370 --> 00:16:51,580 Och sedan ska vi se. 343 00:16:51,580 --> 00:16:52,120 Okej. 344 00:16:52,120 --> 00:16:54,460 Så fisken rör sig som vanligt. 345 00:16:54,460 --> 00:16:55,540 Och sedan, åh - 346 00:16:55,540 --> 00:17:00,280 nu hajen inte kan fly och studsar på skärmen. 347 00:17:00,280 --> 00:17:01,155 Cool. 348 00:17:01,155 --> 00:17:01,600 Okej. 349 00:17:01,600 --> 00:17:02,770 Så jag letade i. 350 00:17:02,770 --> 00:17:03,710 Jag Värre - ja? 351 00:17:03,710 --> 00:17:06,196 >> Elev: Hur gör man som gäller för hajen när den rör sig 352 00:17:06,196 --> 00:17:07,329 till fisken? 353 00:17:07,329 --> 00:17:07,780 ZAMYLA CHAN: Ah. 354 00:17:07,780 --> 00:17:15,910 Så anledningen endast haj studsar, i motsats till 355 00:17:15,910 --> 00:17:20,530 fisk också, eftersom det skript som vi skrev är inne 356 00:17:20,530 --> 00:17:21,290 haj spriten. 357 00:17:21,290 --> 00:17:22,950 Du förstår, här uppe är haj sprite valt. 358 00:17:25,609 --> 00:17:25,990 Okej. 359 00:17:25,990 --> 00:17:30,730 Så låt oss lägga till något annat. 360 00:17:30,730 --> 00:17:34,260 Jag utforskar de olika kostymer som 361 00:17:34,260 --> 00:17:37,870 Scratch har, och jag såg detta söta lilla haj-Chomp. 362 00:17:37,870 --> 00:17:41,070 Så jag tänkte att, hey, ja, kanske vi kan genomföra 363 00:17:41,070 --> 00:17:45,975 haj chomping, till exempel när vi trycker på utrymme. 364 00:17:45,975 --> 00:17:47,560 Jag ska bara stoppa detta. 365 00:17:47,560 --> 00:17:49,990 Okej. 366 00:17:49,990 --> 00:17:50,476 Ja. 367 00:17:50,476 --> 00:17:54,370 >> STUDENTEN Kan du bara visa - är att under Kostymer? 368 00:17:54,370 --> 00:17:54,900 ZAMYLA CHAN: Åh, ja. 369 00:17:54,900 --> 00:17:59,560 Så jag gick under Kostymer, och sedan jag tittade under Importera. 370 00:17:59,560 --> 00:18:02,780 Och så här, Scratch har en hel rad kostymer som 371 00:18:02,780 --> 00:18:03,500 du kan välja. 372 00:18:03,500 --> 00:18:07,120 Och så då finns det en hel massa djur, och sedan 373 00:18:07,120 --> 00:18:09,560 haj har ett par kostymer i samband med det. 374 00:18:15,116 --> 00:18:15,580 OK. 375 00:18:15,580 --> 00:18:22,480 Så i det här skriptet här, jag kolla redan kontinuerligt 376 00:18:22,480 --> 00:18:26,090 i evigt slingan, OK, ja, om vänsterpilen trycks 377 00:18:26,090 --> 00:18:28,720 då jag vill rotera moturs. 378 00:18:28,720 --> 00:18:32,180 Om högerpilen trycks, jag vill rotera medurs. 379 00:18:32,180 --> 00:18:33,800 Om uppåtpilen trycks då jag 380 00:18:33,800 --> 00:18:36,050 vill gå vidare framåt. 381 00:18:36,050 --> 00:18:42,250 Så vad vi kan göra är att lägga till bara skriptet istället för 382 00:18:42,250 --> 00:18:45,350 lägga en separat, eftersom det redan checkar in 383 00:18:45,350 --> 00:18:48,640 vars tema knappar trycks. 384 00:18:48,640 --> 00:18:52,050 >> Så låt oss lägga till en som säger om mellanslagstangenten - låt oss använda 385 00:18:52,050 --> 00:18:54,200 utrymme för att Chomp ner. 386 00:18:54,200 --> 00:18:58,970 Så dessa åt vänster pil trycks et cetera, dessa är 387 00:18:58,970 --> 00:19:00,680 i den ljusare blå. 388 00:19:00,680 --> 00:19:04,520 Så låt oss gå till Sensing ljusare blå och titta ner. 389 00:19:04,520 --> 00:19:09,020 Åh, och här är en viktig plats ned. 390 00:19:09,020 --> 00:19:13,510 Så vad vi vill göra är att få haj övergången till den 391 00:19:13,510 --> 00:19:15,320 chomping ner kostym. 392 00:19:15,320 --> 00:19:16,670 Det har att göra med hur hajen 393 00:19:16,670 --> 00:19:18,160 ser, så vi går till utseende. 394 00:19:18,160 --> 00:19:21,560 Och här har vi, bekvämt, växla till 395 00:19:21,560 --> 00:19:23,680 kostym haj-Chomp. 396 00:19:23,680 --> 00:19:27,980 Men när vi Chomp ner, vi vill inte haj som 397 00:19:27,980 --> 00:19:30,820 chomping ner för alltid, så låt oss lägga till, OK, ja då 398 00:19:30,820 --> 00:19:36,950 efter det chomps vill vi att växla tillbaka. 399 00:19:36,950 --> 00:19:41,790 OK, så låt oss se vad det gör. 400 00:19:41,790 --> 00:19:43,990 Så vi har det flyttar runt. 401 00:19:43,990 --> 00:19:44,720 OK. 402 00:19:44,720 --> 00:19:46,660 Så vi har det chomping. 403 00:19:46,660 --> 00:19:51,240 Det är chomping typ av snabbt men eftersom i Scratch, 404 00:19:51,240 --> 00:19:53,710 det utför dem omedelbart. 405 00:19:53,710 --> 00:19:58,300 Alltså, låt oss gå att kontrollera och göra det uppskattar sin 406 00:19:58,300 --> 00:19:59,785 Chomp, vänta en sekund. 407 00:20:03,890 --> 00:20:09,130 Och här chomps ner lite längre tid innan det går 408 00:20:09,130 --> 00:20:11,180 tillbaka till sin hunger. 409 00:20:11,180 --> 00:20:11,530 >> OK. 410 00:20:11,530 --> 00:20:13,210 Så jag är ganska nöjd med hajen nu. 411 00:20:13,210 --> 00:20:18,740 Men fisken, vad det verkar göra - det är framåt en 412 00:20:18,740 --> 00:20:20,750 par av steg, i själva verket, fem gånger. 413 00:20:20,750 --> 00:20:24,940 Det rör sig 50 steg. 414 00:20:24,940 --> 00:20:29,280 Och vad det gör här i topp blocket här är jag 415 00:20:29,280 --> 00:20:35,180 sade OK, ja, det kommer att gå till ett visst värde på x. 416 00:20:35,180 --> 00:20:38,560 För att hitta koordinaterna kan du egentligen bara musen över 417 00:20:38,560 --> 00:20:40,550 skärmen, och sedan i botten - 418 00:20:40,550 --> 00:20:41,530 här borta - 419 00:20:41,530 --> 00:20:43,210 Det ska visa dig vad koordinaterna är. 420 00:20:43,210 --> 00:20:45,950 Så du kan dra nytta av detta för att mata in koordinaterna 421 00:20:45,950 --> 00:20:46,830 som du vill. 422 00:20:46,830 --> 00:20:49,160 Och så vad detta uttalande här säger säger, OK, 423 00:20:49,160 --> 00:20:54,200 väl börjar fisken vid detta visst x-värde och sedan 424 00:20:54,200 --> 00:20:55,540 höjden av den kan förändras. 425 00:20:55,540 --> 00:20:59,740 Jag faktiskt kommer att välja en slumpmässig höjd som fortfarande håller 426 00:20:59,740 --> 00:21:02,580 inom ramarna för scenen. 427 00:21:02,580 --> 00:21:04,320 Och så här, vad jag utnyttjar är 428 00:21:04,320 --> 00:21:05,680 sändning händelser. 429 00:21:05,680 --> 00:21:09,310 Så du ser att den här händelsehanteraren är ny fish1. 430 00:21:09,310 --> 00:21:14,730 Så när fisken får nya fish1 händelsen, det ska 431 00:21:14,730 --> 00:21:16,250 utföra detta. 432 00:21:16,250 --> 00:21:19,740 Och då ser man att efter den rör fram sin fastställt belopp 433 00:21:19,740 --> 00:21:21,400 gånger, så sänder faktiskt 434 00:21:21,400 --> 00:21:22,720 igen, OK, ny fish1. 435 00:21:25,560 --> 00:21:31,860 Men istället, vad sägs om vi gör det så att fisken endast 436 00:21:31,860 --> 00:21:35,320 fortsätter till slutet av skärmen innan återställs, 437 00:21:35,320 --> 00:21:37,180 istället för att bara typ att gå till centrum av den. 438 00:21:40,480 --> 00:21:46,180 Så istället för att säga, upprepa fem gånger - eftersom vi inte 439 00:21:46,180 --> 00:21:48,380 verkligen vet hur många gånger kommer att behövas förrän det 440 00:21:48,380 --> 00:21:52,180 når slutet av skärmen, låt oss använda något annat. 441 00:21:52,180 --> 00:21:54,870 >> Så jag ska skilja ut det här, eftersom vi 442 00:21:54,870 --> 00:21:56,080 egentligen inte vill det. 443 00:21:56,080 --> 00:21:59,610 För att ta bort block i Scratch, vad du gör är du bara dra 444 00:21:59,610 --> 00:22:03,415 den till vänster, släpp, och sedan tas bort helt. 445 00:22:03,415 --> 00:22:05,470 Om du bestämmer dig för att du inte vill göra det, så kan du 446 00:22:05,470 --> 00:22:08,970 alltid återställa det. 447 00:22:08,970 --> 00:22:10,640 Men vi vill bli av med denna. 448 00:22:10,640 --> 00:22:15,490 Vad vi vill göra är att vi vill hålla på att flytta 50 steg och 449 00:22:15,490 --> 00:22:19,400 paus en sekund tills vi rör vid slutet av skärmen. 450 00:22:19,400 --> 00:22:25,480 Så kan någon upptäcka en slinga som vi kanske vill använda det 451 00:22:25,480 --> 00:22:28,750 upprepar en process bara tills vi peka på skärmen. 452 00:22:31,594 --> 00:22:33,490 >> STUDENTEN Upprepa tills. 453 00:22:33,490 --> 00:22:36,750 ZAMYLA CHAN: Jag hörde "upprepa tills" och det är korrekt. 454 00:22:36,750 --> 00:22:40,990 Så ja, tar denna upprepa tills blocket också - 455 00:22:40,990 --> 00:22:43,770 men vi ser att detta upprepas tills blocket är inte riktigt 456 00:22:43,770 --> 00:22:44,570 komplett, eller hur? 457 00:22:44,570 --> 00:22:48,490 Så vi måste säga, OK, bra, upprepa tills när? 458 00:22:48,490 --> 00:22:51,380 Så vi säger OK, bra, upprepa tills fisken vidrör 459 00:22:51,380 --> 00:22:52,680 kanten av skärmen. 460 00:22:52,680 --> 00:22:55,230 Och så ska jag tala om för er att det är under avkänning. 461 00:22:55,230 --> 00:22:58,930 Det är denna röra Boolean. 462 00:22:58,930 --> 00:23:04,510 Och så kan du välja här vad du vill att checka 463 00:23:04,510 --> 00:23:05,530 att fisken är rörande. 464 00:23:05,530 --> 00:23:09,200 Så här vill vi säga att vidröra kanten. 465 00:23:09,200 --> 00:23:13,110 Och då vill vi lägga till den här igen 466 00:23:13,110 --> 00:23:21,940 Och så nu, om vi tittar på vår fisk gå när den vidrör 467 00:23:21,940 --> 00:23:25,170 kant, det ska gå tillbaka igen. 468 00:23:25,170 --> 00:23:25,660 Okej. 469 00:23:25,660 --> 00:23:27,390 Så jag är nöjd med det. 470 00:23:27,390 --> 00:23:30,890 Och låt oss öppet HungryShark1. 471 00:23:34,620 --> 00:23:38,230 >> OK, ungefär som ett matlagningsprogram, tillade jag lite 472 00:23:38,230 --> 00:23:39,850 fler funktioner. 473 00:23:39,850 --> 00:23:43,080 Så till exempel, ser du att fisken nu faktiskt 474 00:23:43,080 --> 00:23:45,960 glida ganska smidigt, till skillnad från tidigare, när det var 475 00:23:45,960 --> 00:23:48,350 typ av rörelse och stoppa, flytta och stoppa - 476 00:23:48,350 --> 00:23:52,890 huvudsak bara hoppa set pixlar. 477 00:23:52,890 --> 00:23:56,810 Jag tittade under Motion, tyckte att det här glida uttalande, och jag 478 00:23:56,810 --> 00:24:00,515 sade OK, istället för att bara flytta och stoppa, flytta 479 00:24:00,515 --> 00:24:04,850 och stopp, jag ska glida 70 enheter till höger, 480 00:24:04,850 --> 00:24:08,500 men bo på min samma y-position här. 481 00:24:08,500 --> 00:24:09,680 Okej. 482 00:24:09,680 --> 00:24:11,430 Så vi har en haj som kan Chomp. 483 00:24:13,940 --> 00:24:15,060 Cool. 484 00:24:15,060 --> 00:24:18,610 Men det kallas HungryShark, trots allt, så låt oss ha 485 00:24:18,610 --> 00:24:20,550 haj äter fisken. 486 00:24:20,550 --> 00:24:29,120 >> Så hur kan vi tala om fisken eller berätta hajen att den har 487 00:24:29,120 --> 00:24:30,680 chomped ner? 488 00:24:30,680 --> 00:24:32,470 Hur kan vi kommunicera? 489 00:24:32,470 --> 00:24:33,220 Ja. 490 00:24:33,220 --> 00:24:35,120 STUDENTEN På andra kostym av hajen, 491 00:24:35,120 --> 00:24:36,550 den fångar fisken. 492 00:24:36,550 --> 00:24:38,460 ZAMYLA CHAN: Ja, exakt. 493 00:24:38,460 --> 00:24:42,710 Så vi vet att när vi byter kostym till 494 00:24:42,710 --> 00:24:45,500 Chomp, att vi har Chomp ner. 495 00:24:45,500 --> 00:24:49,530 Nu kommer vi till slut att kontrollera. 496 00:24:49,530 --> 00:24:51,880 Säg att vi vill att fisken ska försvinna när den äts. 497 00:24:51,880 --> 00:24:54,820 Vi måste på något sätt meddela fisk som 498 00:24:54,820 --> 00:24:59,405 Det får dölja, till exempel, eller försvinner från 499 00:24:59,405 --> 00:25:01,670 skärmen när det har chomped ner på. 500 00:25:01,670 --> 00:25:08,200 >> Så vilken typ av koncept, vilken typ av verktyg kan vi använda för att 501 00:25:08,200 --> 00:25:10,440 har haj meddela till fisk, OK, 502 00:25:10,440 --> 00:25:11,526 Jag har chomped ner? 503 00:25:11,526 --> 00:25:12,340 STUDENTEN Broadcasting. 504 00:25:12,340 --> 00:25:14,290 ZAMYLA CHAN: Ja, exakt, sänder en händelse. 505 00:25:14,290 --> 00:25:17,733 Så låt oss gå att kontrollera och låt oss säga sändning. 506 00:25:20,280 --> 00:25:24,730 Och låt oss sända Chomp. 507 00:25:24,730 --> 00:25:25,420 Okej. 508 00:25:25,420 --> 00:25:27,690 Men när vi sänder något, det är med 509 00:25:27,690 --> 00:25:29,390 antagandet att vi faktiskt kommer att ha något 510 00:25:29,390 --> 00:25:30,360 emot det. 511 00:25:30,360 --> 00:25:32,110 Och så det kommer att bli fisken. 512 00:25:32,110 --> 00:25:36,600 Så låt oss säga, när jag får chomp. 513 00:25:40,360 --> 00:25:43,720 Nu när hajen chomp ner bara ett tomt utrymme, gör vi inte 514 00:25:43,720 --> 00:25:46,180 vill fisken att reagera på det alls. 515 00:25:46,180 --> 00:25:50,780 Så låt oss säga, OK, ja, endast om hajen vidrör 516 00:25:50,780 --> 00:25:52,310 fisk vid tidpunkten för Chomp - 517 00:25:52,310 --> 00:25:54,210 det är då vi ska faktiskt göra något. 518 00:25:54,210 --> 00:25:58,560 Så då ska vi använda villkoret om rättighet, 519 00:25:58,560 --> 00:26:01,100 eftersom vi kontrollera om något är sant eller inte. 520 00:26:01,100 --> 00:26:03,170 Så om vi går tillbaka till Sensing, då kan vi 521 00:26:03,170 --> 00:26:05,760 använder här, om beröring. 522 00:26:05,760 --> 00:26:07,490 Och sedan här, vi väljer hajen. 523 00:26:12,280 --> 00:26:14,710 Sedan under utseende, detta dölj block - 524 00:26:14,710 --> 00:26:19,250 som i princip kommer att göra fisken försvinner från scenen. 525 00:26:19,250 --> 00:26:22,760 Vi ska göra det gömmer, men vi vill en annan fisk, eller hur? 526 00:26:22,760 --> 00:26:23,820 Vår haj är hungrig. 527 00:26:23,820 --> 00:26:24,960 Vi vill ge den mer fisk. 528 00:26:24,960 --> 00:26:31,640 Så låt oss också sända en ny fisk igen. 529 00:26:31,640 --> 00:26:31,890 OK. 530 00:26:31,890 --> 00:26:35,880 Så låt oss se vad det gör. 531 00:26:35,880 --> 00:26:36,310 >> Cool. 532 00:26:36,310 --> 00:26:38,830 Så det chomps ned och annan fisk visas. 533 00:26:38,830 --> 00:26:41,360 Men det är lite för snabb för en annan fisk att gå. 534 00:26:41,360 --> 00:26:44,610 Så låt oss bara vänta en sekund innan vi 535 00:26:44,610 --> 00:26:45,860 sända en ny fisk. 536 00:26:48,350 --> 00:26:49,110 Okej. 537 00:26:49,110 --> 00:26:49,380 OK. 538 00:26:49,380 --> 00:26:52,460 Så detta är en ganska bra skapandet av ett spel. 539 00:26:52,460 --> 00:26:54,350 Men alla spel behöver en poäng, eller hur? 540 00:26:54,350 --> 00:26:57,070 Så vad kan vi använda för att hålla poäng? 541 00:27:00,370 --> 00:27:00,630 Ja. 542 00:27:00,630 --> 00:27:01,005 STUDENT: Övrigt - 543 00:27:01,005 --> 00:27:01,830 ZAMYLA CHAN: Ja. 544 00:27:01,830 --> 00:27:02,290 Exakt. 545 00:27:02,290 --> 00:27:04,520 Ja. 546 00:27:04,520 --> 00:27:06,480 Så vi vill hålla reda på i princip hur 547 00:27:06,480 --> 00:27:07,660 många fiskar det äts. 548 00:27:07,660 --> 00:27:09,430 För att göra det, vi måste göra en variabel. 549 00:27:09,430 --> 00:27:11,100 Låt oss kalla den punkten. 550 00:27:11,100 --> 00:27:14,240 Och så förmodligen, eftersom detta är ett spel som vi spelar, 551 00:27:14,240 --> 00:27:18,060 vi kommer att vilja fisken ska kunna - 552 00:27:18,060 --> 00:27:19,860 säga när dess ätit det kan öka poängen eller 553 00:27:19,860 --> 00:27:23,780 något och sedan scenen kommer antagligen behöva göra 554 00:27:23,780 --> 00:27:25,020 något med öm också. 555 00:27:25,020 --> 00:27:28,280 Så jag kommer att välja att göra detta till en global variabel och säga 556 00:27:28,280 --> 00:27:30,920 för alla sprites. 557 00:27:30,920 --> 00:27:31,470 OK. 558 00:27:31,470 --> 00:27:33,880 Så när vi vill öka poängen? 559 00:27:33,880 --> 00:27:36,440 När en fisk har ätit. 560 00:27:36,440 --> 00:27:39,390 Och så har vi redan en process här som är att göra 561 00:27:39,390 --> 00:27:40,800 med fisken äts. 562 00:27:40,800 --> 00:27:43,570 Så låt oss lägga detta uttalande här - 563 00:27:43,570 --> 00:27:44,820 ändra Betyg från 1. 564 00:27:49,208 --> 00:27:49,670 Cool. 565 00:27:49,670 --> 00:27:54,580 Så när du äter en fisk, de poäng ökar. 566 00:27:54,580 --> 00:27:54,790 >> Okej. 567 00:27:54,790 --> 00:27:57,090 Så säger jag är trött på det här spelet. 568 00:27:57,090 --> 00:27:58,410 Jag slutar. 569 00:27:58,410 --> 00:28:01,110 Och sedan, åh, jag vill komma tillbaka till spelet. 570 00:28:01,110 --> 00:28:02,630 Jag vill starta ett nytt spel. 571 00:28:02,630 --> 00:28:05,550 Tja, är poängen fortfarande 3, trots att jag är 572 00:28:05,550 --> 00:28:06,680 spela ett nytt spel. 573 00:28:06,680 --> 00:28:10,190 Vi vill egentligen inte göra mål aldrig att återställa, eller hur? 574 00:28:10,190 --> 00:28:16,240 Så låt oss lägga ett uttalande när spelet startas i 575 00:28:16,240 --> 00:28:19,990 skede för att säga OK, ja, vi vill återställa poäng. 576 00:28:19,990 --> 00:28:23,100 Så här har vi satt variabeln poäng till 0. 577 00:28:23,100 --> 00:28:27,960 Och så nu, när du startar ett spel, resultatet 578 00:28:27,960 --> 00:28:30,920 börjar på 0. 579 00:28:30,920 --> 00:28:32,270 Cool. 580 00:28:32,270 --> 00:28:33,520 OK. 581 00:28:36,875 --> 00:28:37,340 OK. 582 00:28:37,340 --> 00:28:40,240 Så nu, låt oss gå vidare till HungryShark2. 583 00:28:40,240 --> 00:28:43,500 >> Så jag har gjort lite mer nu, och vad jag har gjort är 584 00:28:43,500 --> 00:28:44,860 höger klickade på fisken spriten. 585 00:28:44,860 --> 00:28:47,970 Jag ville ha mer fisk, så jag klickade duplikat och det gjorde 586 00:28:47,970 --> 00:28:51,930 en ny sprite identisk med den en och kopierade också i alla 587 00:28:51,930 --> 00:28:53,030 skript också. 588 00:28:53,030 --> 00:28:56,810 Så då denna fish2 är i huvudsak identiskt med 589 00:28:56,810 --> 00:28:59,630 fish1, utom i stället för start till vänster och 590 00:28:59,630 --> 00:29:02,550 går rätt, börjar det till höger och vänster drag. 591 00:29:02,550 --> 00:29:06,390 Och då valde jag också en ny kostym för det. 592 00:29:06,390 --> 00:29:09,022 Sen hittade jag en annan kostym som var en fläckig fisk, och jag 593 00:29:09,022 --> 00:29:11,950 var, kyler, det här ser giftiga, så låt oss låtsas 594 00:29:11,950 --> 00:29:13,600 att detta är en giftig fisk. 595 00:29:13,600 --> 00:29:18,250 Och så sa jag, OK, ja, i stället för att äta 596 00:29:18,250 --> 00:29:20,980 Giftiga fiskar och med din poäng ökar, jag faktiskt 597 00:29:20,980 --> 00:29:22,210 vill att den ska minska. 598 00:29:22,210 --> 00:29:27,890 Så här har vi poäng minskade med 1 när 599 00:29:27,890 --> 00:29:29,990 haj äter det. 600 00:29:29,990 --> 00:29:31,650 Och sedan, jag gillade de kostymer som repar 601 00:29:31,650 --> 00:29:34,450 tillhandahålls, och jag såg och då fann jag shark's - 602 00:29:34,450 --> 00:29:36,050 det såg ut som en sjuk haj. 603 00:29:36,050 --> 00:29:38,040 Och så då jag redigerade det jag gjorde det gröna. 604 00:29:38,040 --> 00:29:41,880 Och jag var som, coolt, det är en sjuk haj. 605 00:29:41,880 --> 00:29:42,150 Okej. 606 00:29:42,150 --> 00:29:49,150 >> Så låt låt oss lägga till vår skript någon form av sätt att göra 607 00:29:49,150 --> 00:29:53,660 haj brytare till att vara sjuk när det 608 00:29:53,660 --> 00:29:56,800 äter en förgiftad fisk. 609 00:29:56,800 --> 00:29:57,380 OK. 610 00:29:57,380 --> 00:30:03,620 Så eftersom vi kopierade alla skript från vår ursprungliga 611 00:30:03,620 --> 00:30:07,760 fisk i giftet fisk, har det redan här spriten här 612 00:30:07,760 --> 00:30:10,680 som säger, när jag chomped ner, jag 613 00:30:10,680 --> 00:30:12,020 faktiskt chomped ner? 614 00:30:12,020 --> 00:30:15,660 Så vi kan dra nytta av detta för att meddela 615 00:30:15,660 --> 00:30:18,170 haj, oh, ja, åt du bara en gift fisk. 616 00:30:18,170 --> 00:30:18,850 Du är sjuk. 617 00:30:18,850 --> 00:30:23,100 Och så detta skulle vara vilken typ av åtgärder? 618 00:30:23,100 --> 00:30:25,110 Vad skulle vara vilja göra? 619 00:30:25,110 --> 00:30:25,650 Sänd. 620 00:30:25,650 --> 00:30:26,240 Ja, exakt. 621 00:30:26,240 --> 00:30:28,930 Så låt oss sändning. 622 00:30:28,930 --> 00:30:33,650 Låt oss kalla det haj sjuk. 623 00:30:33,650 --> 00:30:34,320 OK. 624 00:30:34,320 --> 00:30:36,930 Så nu, hajen, självklart kommer att vara den som är 625 00:30:36,930 --> 00:30:38,250 får denna händelse. 626 00:30:38,250 --> 00:30:44,150 Så låt oss lägga till när jag får hajen är sjuk. 627 00:30:44,150 --> 00:30:44,410 OK. 628 00:30:44,410 --> 00:30:46,300 Så vi vet att vi har denna dräkt - 629 00:30:46,300 --> 00:30:49,400 hajen är sjuk. 630 00:30:49,400 --> 00:30:51,900 Och vi vet från tidigare att vi typ av uppskattar 631 00:30:51,900 --> 00:30:54,420 när vi kan pausa lite innan du växlar tillbaka. 632 00:30:54,420 --> 00:30:54,875 Ja? 633 00:30:54,875 --> 00:30:56,467 >> STUDENT: Hur du kopierar skript från 634 00:30:56,467 --> 00:30:57,605 en sprite till en annan? 635 00:30:57,605 --> 00:30:58,510 ZAMYLA CHAN: Ah. 636 00:30:58,510 --> 00:31:03,610 Så i detta fall när jag bara dupliceras Sprite, till 637 00:31:03,610 --> 00:31:07,880 kopiera ett skript till en annan sprite, vad jag gjorde här var 638 00:31:07,880 --> 00:31:11,630 bara säga två exemplar och det faktiskt gjort en helt ny 639 00:31:11,630 --> 00:31:14,110 sprite med alla skript ingår. 640 00:31:14,110 --> 00:31:18,100 Men säger du bara vill kopiera en viss skript till en annan 641 00:31:18,100 --> 00:31:23,740 sprite, vad du skulle göra är faktiskt bara dra detta, 642 00:31:23,740 --> 00:31:29,990 muspekaren över ett annat skript, och nu här är det dupliceras det. 643 00:31:29,990 --> 00:31:32,590 I detta fall är det redan hade det, så vi bara kan ta bort 644 00:31:32,590 --> 00:31:33,170 det igen. 645 00:31:33,170 --> 00:31:37,060 Men att kopiera en manus till en annan, vad du gör är bara 646 00:31:37,060 --> 00:31:40,230 dra den till de andra sprites. 647 00:31:40,230 --> 00:31:40,490 OK. 648 00:31:40,490 --> 00:31:42,390 >> Så vi är tillbaka på hajen är sjuk. 649 00:31:42,390 --> 00:31:45,650 Så det är emot haj är sjuk, och det säger, OK, ja, 650 00:31:45,650 --> 00:31:49,110 när jag är sjuk, jag kommer att byta till min dräkt som säger 651 00:31:49,110 --> 00:31:54,630 "Haj sjuk", och nu ska vi bara lägga en väntan att 652 00:31:54,630 --> 00:31:56,280 uppskattar det gröna. 653 00:31:56,280 --> 00:31:59,560 Och då kommer vi att vara hungrig igen, så vi kan bara 654 00:31:59,560 --> 00:32:04,140 växla tillbaka till hajen vara hungrig. 655 00:32:04,140 --> 00:32:04,460 Okej. 656 00:32:04,460 --> 00:32:06,390 Så låt oss äta denna lila fisk. 657 00:32:06,390 --> 00:32:07,640 Det är bra. 658 00:32:10,700 --> 00:32:11,230 Bra fråga. 659 00:32:11,230 --> 00:32:13,070 Vad hände med disken? 660 00:32:13,070 --> 00:32:13,660 OK. 661 00:32:13,660 --> 00:32:23,090 Så vi har satt poäng till 0 här, men denna poäng - vad 662 00:32:23,090 --> 00:32:28,700 denna markering inte är det döljer eller unhides variabeln 663 00:32:28,700 --> 00:32:29,775 från skärmen. 664 00:32:29,775 --> 00:32:34,320 Men vad vi kan göra i stället för att avmarkera eller kontrollera det - 665 00:32:34,320 --> 00:32:37,330 Vi kan faktiskt ha detta block här säger "visa eller dölja 666 00:32:37,330 --> 00:32:40,160 variabeln. "Så låt oss se till att varje gång vi startar 667 00:32:40,160 --> 00:32:41,945 spelet att variabeln visas. 668 00:32:44,840 --> 00:32:45,100 >> OK. 669 00:32:45,100 --> 00:32:46,540 Så nu variabeln visas. 670 00:32:46,540 --> 00:32:52,160 Vi äter en gift fisk, och vi blir sjuka. 671 00:32:52,160 --> 00:32:53,440 Cool. 672 00:32:53,440 --> 00:32:53,680 Okej. 673 00:32:53,680 --> 00:32:56,910 Så nu är det udda för ett spel för oss att ha negativ 674 00:32:56,910 --> 00:32:57,420 poäng, eller hur? 675 00:32:57,420 --> 00:33:01,830 Så det håller på att äta dessa och det är som - 676 00:33:01,830 --> 00:33:05,190 så vad sägs om när vi får negativ, om vi har ätit för 677 00:33:05,190 --> 00:33:10,770 många giftiga fisk, vilt över - haj är för sjuk. 678 00:33:10,770 --> 00:33:11,110 Okej. 679 00:33:11,110 --> 00:33:12,680 Så vad vi behöver göra är att vi kommer att behöva 680 00:33:12,680 --> 00:33:14,950 sända en viss händelse - 681 00:33:14,950 --> 00:33:15,960 spelet över. 682 00:33:15,960 --> 00:33:17,710 Så vi kunde göra på flera sätt, faktiskt. 683 00:33:17,710 --> 00:33:20,810 Vi skulle kunna ha någonstans i scenen ett skript som 684 00:33:20,810 --> 00:33:22,920 kontinuerligt kontroller är poängen negativt? 685 00:33:22,920 --> 00:33:24,030 Är poängen negativt? 686 00:33:24,030 --> 00:33:26,910 Om ja, då vi sänder denna händelse. 687 00:33:26,910 --> 00:33:29,120 >> Så det är ett sätt att göra det. 688 00:33:29,120 --> 00:33:31,640 Eller vi kan dra fördel av det faktum att vi vet att 689 00:33:31,640 --> 00:33:36,990 enda sättet att din poäng skulle vara negativt är när du äter en 690 00:33:36,990 --> 00:33:38,360 Giftiga fiskar, eller hur? 691 00:33:38,360 --> 00:33:39,930 För när du äter en annan fisk, din 692 00:33:39,930 --> 00:33:41,240 poäng kommer att öka. 693 00:33:41,240 --> 00:33:44,440 Så det är ingen idé att kontrollera om det ska vara 694 00:33:44,440 --> 00:33:46,390 spelet över eller inte. 695 00:33:46,390 --> 00:33:50,270 Så detta är en liknande process här. 696 00:33:50,270 --> 00:33:53,230 Så vi kan faktiskt bara lägga till denna "när jag får haj 697 00:33:53,230 --> 00:33:54,700 sjuk. " 698 00:33:54,700 --> 00:33:59,575 Så säger vi till detta tillstånd. 699 00:34:02,080 --> 00:34:04,820 Vi vill säga, om summan är mindre än 0. 700 00:34:04,820 --> 00:34:07,480 Så vi kommer att gå till operatörer, vi kommer att använda 701 00:34:07,480 --> 00:34:09,650 detta mindre än en, kommer vi att dra våra 702 00:34:09,650 --> 00:34:12,800 poäng här, säger 0. 703 00:34:12,800 --> 00:34:16,920 Och så, om resultatet är 0, då vi vill sända 704 00:34:16,920 --> 00:34:20,790 något som kallas spelet över. 705 00:34:23,310 --> 00:34:24,560 >> OK. 706 00:34:26,199 --> 00:34:29,650 Så säger vi game over. 707 00:34:29,650 --> 00:34:33,199 Låt oss gå den här eller något. 708 00:34:33,199 --> 00:34:38,739 Tja, vill vi att hajen bara att gå tillbaka till att vara hungrig om 709 00:34:38,739 --> 00:34:40,980 spelet kan fortfarande spelas. 710 00:34:40,980 --> 00:34:43,909 Så istället för att använda en "om" vi använder 711 00:34:43,909 --> 00:34:45,380 ett "om annat" konstruera. 712 00:34:45,380 --> 00:34:48,060 Så vad detta innebär - det säger, OK, så om detta villkor är 713 00:34:48,060 --> 00:34:51,630 sant, då gör det, men om det är falskt så gör det. 714 00:34:51,630 --> 00:34:54,929 Så låt oss lägga om resultatet är mindre än 0, då du 715 00:34:54,929 --> 00:34:57,730 sända spelet över, men om inte - om din 716 00:34:57,730 --> 00:34:59,210 poäng är fortfarande positiv - 717 00:34:59,210 --> 00:35:00,720 sedan gå tillbaka till att vara hungrig. 718 00:35:03,530 --> 00:35:03,790 OK. 719 00:35:03,790 --> 00:35:04,290 Cool. 720 00:35:04,290 --> 00:35:09,390 Så nu när vi har detta spel över händelsen, vi måste ha 721 00:35:09,390 --> 00:35:11,040 något sätt för att svara på det. 722 00:35:11,040 --> 00:35:16,460 >> Så låt oss göra ett nytt script som säger "när jag får spel 723 00:35:16,460 --> 00:35:21,470 över. "Och vad har vi här under kontroll är faktiskt detta 724 00:35:21,470 --> 00:35:25,410 stoppa all knapp, så det i princip härmar dig klicka 725 00:35:25,410 --> 00:35:26,720 den röda stoppskylt här. 726 00:35:26,720 --> 00:35:30,210 Så låt oss ha haj stopp. 727 00:35:30,210 --> 00:35:33,020 Och så vill vi också att fisken att stanna, så låt oss dra och 728 00:35:33,020 --> 00:35:33,910 kopiera in den 729 00:35:33,910 --> 00:35:36,830 Vi vill att alla fisken att stanna. 730 00:35:36,830 --> 00:35:39,530 Och sedan låta oss ha scenen stopp liksom. 731 00:35:39,530 --> 00:35:39,910 Okej. 732 00:35:39,910 --> 00:35:43,730 Så simmar runt, äter vi en fisk, och 733 00:35:43,730 --> 00:35:46,580 sedan programmet fryser. 734 00:35:46,580 --> 00:35:49,670 Jag klickar ner men jag kan faktiskt inte göra någonting. 735 00:35:49,670 --> 00:35:56,500 OK, men låt oss säga att vi inte vill att påminna användaren om att 736 00:35:56,500 --> 00:36:00,410 de har ett negativt värde, till exempel, då kan vi, för 737 00:36:00,410 --> 00:36:02,820 exempel dölja variabel från skärmen. 738 00:36:02,820 --> 00:36:06,340 Så när scenen får spelet över, så kommer det att gömma 739 00:36:06,340 --> 00:36:07,590 variabeln poäng. 740 00:36:10,714 --> 00:36:12,190 OK. 741 00:36:12,190 --> 00:36:15,025 Så låt oss äta en mer fisk. 742 00:36:19,900 --> 00:36:23,420 Och sedan poängen försvinner, och du bara har den här skärmen. 743 00:36:23,420 --> 00:36:23,660 >> Okej. 744 00:36:23,660 --> 00:36:26,530 Så det är en ganska anständig spel, och om du hade mer 745 00:36:26,530 --> 00:36:30,010 tid, då kan du så småningom lägga 746 00:36:30,010 --> 00:36:31,590 fler och fler skript. 747 00:36:31,590 --> 00:36:34,630 Och så då lade jag ett par mer fisk, gjorde dem framåt 748 00:36:34,630 --> 00:36:38,830 vid olika hastigheter och sedan när hajen äter 749 00:36:38,830 --> 00:36:42,140 Giftiga fiskar, säger det faktiskt, "Blech!" 750 00:36:42,140 --> 00:36:45,010 Och vad jag är jag lagt till en ny bakgrund till 751 00:36:45,010 --> 00:36:47,210 stadium - ett spel över bakgrunden. 752 00:36:47,210 --> 00:36:53,610 Och så vad scenen gör under spelets över händelsen 753 00:36:53,610 --> 00:36:58,100 hantering är den växlar till bakgrunden av spelet över 754 00:36:58,100 --> 00:36:58,880 bakgrund. 755 00:36:58,880 --> 00:37:03,930 Och liksom, gömde jag alla sprites från scenen så att 756 00:37:03,930 --> 00:37:07,330 bara spelet över bakgrunden visades. 757 00:37:07,330 --> 00:37:10,620 Det finns ett par andra små tillägg som jag lagt, 758 00:37:10,620 --> 00:37:14,810 till exempel innan när vi slutade vårt program, då vår 759 00:37:14,810 --> 00:37:18,370 haj, nästa gång vi började, skulle starta i 760 00:37:18,370 --> 00:37:19,620 den positionen också. 761 00:37:19,620 --> 00:37:23,970 Vad jag lagt är när den gröna flaggan är tryckt, så 762 00:37:23,970 --> 00:37:26,920 hajen går tillbaka till ursprunget och vänt mot 763 00:37:26,920 --> 00:37:28,490 rätt, så att varje gång, har du en 764 00:37:28,490 --> 00:37:30,270 haj börjar där. 765 00:37:30,270 --> 00:37:32,910 >> Så du kan experimentera i rörelse och saker som att 766 00:37:32,910 --> 00:37:37,410 bara för att lägga lite finputsning som gör din 767 00:37:37,410 --> 00:37:39,820 spelet lite mer polerat. 768 00:37:39,820 --> 00:37:41,190 Har någon några frågor om HungryShark? 769 00:37:45,610 --> 00:37:46,050 Cool. 770 00:37:46,050 --> 00:37:46,400 Okej. 771 00:37:46,400 --> 00:37:49,730 Så det är ett exempel på något som du kan göra 772 00:37:49,730 --> 00:37:53,230 i grunden med alla de verktyg som vi diskuterade tidigare. 773 00:37:53,230 --> 00:37:57,530 Så jag ingår också i genomgång bilderna. 774 00:37:57,530 --> 00:37:58,460 Du ser dem senare. 775 00:37:58,460 --> 00:38:01,770 Det är bara en översikt över de processer som vi gjorde - 776 00:38:01,770 --> 00:38:05,130 framåt från HungryShark0 hela vägen till vår slutliga. 777 00:38:05,130 --> 00:38:08,466 En 778 00:38:08,466 --> 00:38:08,960 Ja. 779 00:38:08,960 --> 00:38:10,310 Men det är om det. 780 00:38:10,310 --> 00:38:11,690 Jag ska stanna kvar om ni vill 781 00:38:11,690 --> 00:38:12,990 ställa fler frågor. 782 00:38:12,990 --> 00:38:14,060 Detta var Genomgång 0. 783 00:38:14,060 --> 00:38:16,250 Tack alla för att ni kom, och jag får se dig på Walkthrough 1.