1 00:00:07,980 --> 00:00:08,470 [Powered by Google Translate] ZAMYLA CHAN: All right. 2 00:00:08,470 --> 00:00:10,960 Hei, alle sammen, og velkommen til Walkthrough 0. 3 00:00:10,960 --> 00:00:12,670 Mitt navn er Zamyla, og jeg skal lede disse 4 00:00:12,670 --> 00:00:14,450 walkthroughs i år. 5 00:00:14,450 --> 00:00:17,650 I CS50, hver oppgavesettet ledsaget av en gjennomgang 6 00:00:17,650 --> 00:00:20,390 der vi vil gå gjennom ukens oppgavesettet, snakke det 7 00:00:20,390 --> 00:00:22,760 gjennom, snakke om hvordan du kommer i gang, diskutere ulike 8 00:00:22,760 --> 00:00:26,120 teknikker og tips for å virkelig bryte problemet satt inn 9 00:00:26,120 --> 00:00:27,600 noen håndterbare biter. 10 00:00:27,600 --> 00:00:29,630 Jeg er også veldig glad for å svare på eventuelle spørsmål du 11 00:00:29,630 --> 00:00:31,440 har på oppgavesettet. 12 00:00:31,440 --> 00:00:33,320 Uten videre, jeg er glad du er her, enten du er 13 00:00:33,320 --> 00:00:35,590 her i person eller tuning i nettet. 14 00:00:35,590 --> 00:00:36,840 La oss komme i gang. 15 00:00:39,940 --> 00:00:42,420 >> Så den første p-set i CS50 - 16 00:00:42,420 --> 00:00:44,590 faktisk, vi kommer ikke til å komme inn å skrive og maskin 17 00:00:44,590 --> 00:00:45,630 kode ting helt ennå. 18 00:00:45,630 --> 00:00:47,360 Vi faktisk kommer til å bruke Scratch, som er en 19 00:00:47,360 --> 00:00:49,860 program som tillater oss å gjøre noen dra og slipp 20 00:00:49,860 --> 00:00:50,780 programmering. 21 00:00:50,780 --> 00:00:54,020 Og så selv om vi ikke skriver, gjør det oss virkelig til 22 00:00:54,020 --> 00:00:55,870 utforske noen av de grunnleggende begreper som 23 00:00:55,870 --> 00:00:58,710 Vi vil bruke alle hele CS50. 24 00:00:58,710 --> 00:01:01,260 Nå, noen av disse konseptene er 25 00:01:01,260 --> 00:01:02,860 oppført her i verktøykassa. 26 00:01:02,860 --> 00:01:05,830 Det jeg ønsker å gjøre for hver walkthrough er presentere deg alle 27 00:01:05,830 --> 00:01:08,390 med et sett med verktøy som du kan bruke for gjennomgang. 28 00:01:08,390 --> 00:01:09,140 Og så, ikke bekymre deg. 29 00:01:09,140 --> 00:01:11,710 Vi vil gå igjennom alle disse vilkårene og alle disse 30 00:01:11,710 --> 00:01:13,320 teorier under gjennomgangen. 31 00:01:13,320 --> 00:01:15,790 Nå, om du ender opp med å bruke alle disse verktøyene, eller bare 32 00:01:15,790 --> 00:01:19,340 noen av dem, det er virkelig godt å vite hva du er utstyrt 33 00:01:19,340 --> 00:01:21,225 med å være i stand til å takle problemet sett. 34 00:01:25,650 --> 00:01:29,110 >> Så i Scratch, er det første lingo som du trenger å vite hva 35 00:01:29,110 --> 00:01:30,110 en sprite er. 36 00:01:30,110 --> 00:01:34,280 Så hver gjenstand eller hver karakter, det være seg en katt en hund 37 00:01:34,280 --> 00:01:36,450 eller en ball, kalles en sprite. 38 00:01:36,450 --> 00:01:40,710 Og så, hvis jeg vil, si, to katter - hvorvidt de er 39 00:01:40,710 --> 00:01:41,360 identiske - 40 00:01:41,360 --> 00:01:45,630 Jeg må gjøre to separate sprites i Scratch. 41 00:01:45,630 --> 00:01:49,250 Og så sprites har skript forbundet med dem. 42 00:01:49,250 --> 00:01:51,360 Skript er faktisk hva du skal bygge - 43 00:01:51,360 --> 00:01:53,290 dra og slippe - med blokker. 44 00:01:53,290 --> 00:01:57,490 Og så hva skriptene dine er slags bestemme og definere hvordan 45 00:01:57,490 --> 00:02:00,090 sprite oppfører seg. 46 00:02:00,090 --> 00:02:03,130 Sprites er faktisk ikke bare bilder, fordi vi har 47 00:02:03,130 --> 00:02:05,790 kostymer også forbundet med sprites den slags 48 00:02:05,790 --> 00:02:07,430 avgjøre hva sprite ser ut. 49 00:02:07,430 --> 00:02:11,000 Og du kan ha mer enn én drakt for en gitt sprite. 50 00:02:11,000 --> 00:02:14,860 >> Så på et tidspunkt under Lotteri-programmet, som vi skal vise 51 00:02:14,860 --> 00:02:17,150 senere i dag under gjennomgang, kan du faktisk 52 00:02:17,150 --> 00:02:19,640 endre kostyme av sprite din slik at den ser heller 53 00:02:19,640 --> 00:02:22,490 litt annerledes eller helt annerledes. 54 00:02:22,490 --> 00:02:26,290 Og så er det tre måter å lage en sprite i Scratch. 55 00:02:26,290 --> 00:02:28,970 En, kan du tegne din egen i Scratch er 56 00:02:28,970 --> 00:02:30,430 bygget i maling editor. 57 00:02:30,430 --> 00:02:35,240 Du kan laste opp ditt eget bilde, kan du bruke en av Scratch er innebygd 58 00:02:35,240 --> 00:02:38,590 seg, eller, det siste alternativet, får en tilfeldig sprite. 59 00:02:38,590 --> 00:02:41,760 Nå, hvis du føler deg spesielt heldig, så jeg 60 00:02:41,760 --> 00:02:45,120 ønsker deg velkommen til å prøve lykken og skaper en tilfeldig sprite. 61 00:02:48,680 --> 00:02:50,890 >> Så alle de sprites er plassert 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 behandle det som lerret vår. 64 00:02:55,130 --> 00:02:57,510 Og så alle de sprites er plassert på scenen. 65 00:02:57,510 --> 00:03:02,920 Og dette stadiet, er hva det gjør kan alle sprites 66 00:03:02,920 --> 00:03:04,160 å flytte rundt på den. 67 00:03:04,160 --> 00:03:09,380 Og akkurat som sprites, har scenen også skript. 68 00:03:09,380 --> 00:03:11,930 Og så disse skriptene, for å plassere dem på scenen - 69 00:03:11,930 --> 00:03:14,230 det er virkelig nyttig når, sier, du har et skript som ikke 70 00:03:14,230 --> 00:03:17,720 nøyaktig gjelder for en bestemt sprite, men heller 71 00:03:17,720 --> 00:03:20,860 gjelder flere sprites eller bare generelt, noe 72 00:03:20,860 --> 00:03:21,870 at du ønsker å gjøre. 73 00:03:21,870 --> 00:03:25,070 Så du kan plassere disse skriptene på scenen i stedet, og at 74 00:03:25,070 --> 00:03:28,010 ville være litt bedre design. 75 00:03:28,010 --> 00:03:32,680 Nå, mens du kan ha flere sprites, er det godt å 76 00:03:32,680 --> 00:03:34,420 husk at du bare kan ha én scene. 77 00:03:34,420 --> 00:03:37,820 Men stadier har også bakgrunn. 78 00:03:37,820 --> 00:03:40,590 I motsetning til kostymer, som spriter gjør, fasene har 79 00:03:40,590 --> 00:03:41,100 bakgrunner. 80 00:03:41,100 --> 00:03:44,340 Og igjen, kan du enten tegne din egen eller last opp dine egne 81 00:03:44,340 --> 00:03:46,140 bilde som skal brukes som bakgrunn. 82 00:03:49,770 --> 00:03:54,100 >> Så noen som har noen spørsmål før vi går videre? 83 00:03:54,100 --> 00:03:54,380 OK. 84 00:03:54,380 --> 00:03:56,880 Gjerne å avbryte meg hva under gjennomgang, og 85 00:03:56,880 --> 00:03:58,780 Jeg er glad for å svare på eventuelle spørsmål 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 starter sprite program, hva du skal 88 00:04:05,950 --> 00:04:08,430 gjøre er du kommer til å klikke på den grønne flagg. 89 00:04:08,430 --> 00:04:10,820 Men hvis du ikke koble noe til denne blokken rett 90 00:04:10,820 --> 00:04:13,400 her, så ingenting er faktisk kommer til å skje. 91 00:04:13,400 --> 00:04:16,450 Fordi, du ser, hva skriptene og scenen må 92 00:04:16,450 --> 00:04:20,149 gjøre er å vite faktisk å svare på hendelsen - 93 00:04:20,149 --> 00:04:22,360 det er hva vi kaller dem, events - av den grønne flagget 94 00:04:22,360 --> 00:04:23,200 blir klikket. 95 00:04:23,200 --> 00:04:26,840 Så du må faktisk legge blokker til sporet på 96 00:04:26,840 --> 00:04:30,270 bunnen av den grønne flagget klikket blokk, og deretter 97 00:04:30,270 --> 00:04:32,670 Programmet vil vite hva du skal gjøre og hvordan de skal reagere på 98 00:04:32,670 --> 00:04:35,700 grønt flagg blir klikket. 99 00:04:35,700 --> 00:04:38,180 >> Vel, hva kommer etter det? 100 00:04:38,180 --> 00:04:43,930 Vel, vi har en mengde blokker i Scratch å bruke, og 101 00:04:43,930 --> 00:04:47,150 hvor kjøttet, egentlig, av programmet ligger i disse 102 00:04:47,150 --> 00:04:48,000 uttalelser. 103 00:04:48,000 --> 00:04:49,900 Og så disse uttalelsene er beleilig 104 00:04:49,900 --> 00:04:51,270 organisert etter farge. 105 00:04:51,270 --> 00:04:54,970 Du har handlinger knyttet til bevegelse, 106 00:04:54,970 --> 00:04:56,930 lyd, utseende, et cetera. 107 00:04:56,930 --> 00:04:59,530 Og så kan du se at du kan navigere mellom dem i 108 00:04:59,530 --> 00:05:02,480 faner i Lotteri-programmet. 109 00:05:02,480 --> 00:05:04,870 Og så, mens du har andre ting som er bygget rundt det, 110 00:05:04,870 --> 00:05:08,520 hva uttalelsene faktisk gjør er faktisk forteller den 111 00:05:08,520 --> 00:05:10,380 sprites eller scenen å gjøre noe. 112 00:05:10,380 --> 00:05:13,450 I motsetning til bare å si, OK, når du gjør dette, 113 00:05:13,450 --> 00:05:16,660 uttalelser faktisk inneholder den virkelige kjøtt av det. 114 00:05:19,410 --> 00:05:22,210 Si la oss ønsker å bare utføre en bestemt handling, sier 115 00:05:22,210 --> 00:05:26,180 du bare vil katten til meow når en bestemt ting skjer. 116 00:05:26,180 --> 00:05:28,430 Vi kan dra nytte av boolske, som du lærte i 117 00:05:28,430 --> 00:05:29,470 forelesning en. 118 00:05:29,470 --> 00:05:32,580 Og så disse er uttrykk som beregnes til 119 00:05:32,580 --> 00:05:34,140 enten sant eller usant. 120 00:05:34,140 --> 00:05:37,510 Og så disse er identifisert i Scratch ved - 121 00:05:37,510 --> 00:05:42,360 du se vinkler på slutten av disse blokkene. 122 00:05:42,360 --> 00:05:45,420 Og så har du en rekke forskjellige typer boolske. 123 00:05:45,420 --> 00:05:49,550 Du har "er den mest blir presset ned", "gjør to pluss to 124 00:05:49,550 --> 00:05:53,830 likestille til 5, "eller" er brukeren trykker ned en viss tast på 125 00:05:53,830 --> 00:05:55,510 tastaturet? " 126 00:05:55,510 --> 00:05:57,210 >> Nå kan du ikke bare bruke disse alene. 127 00:05:57,210 --> 00:06:00,970 Hva du trenger å gjøre er å kombinere dem med en betingelse. 128 00:06:00,970 --> 00:06:04,420 Så tilstanden er der under kontroll fanen i Scratch. 129 00:06:04,420 --> 00:06:07,350 Og så de beleilig har en liten plassholder som 130 00:06:07,350 --> 00:06:10,940 viser formen på blokken du trenger for å sette inn i den. 131 00:06:10,940 --> 00:06:14,720 Så avhengig av konteksten av situasjonen, kan du velge 132 00:06:14,720 --> 00:06:17,600 en boolsk og deretter plassere det inni din tilstand. 133 00:06:17,600 --> 00:06:19,570 Og der har du en betinget utsagn. 134 00:06:19,570 --> 00:06:23,030 Hvis du putter setningene i den blokken, da har du en 135 00:06:23,030 --> 00:06:26,980 struktur satt opp, der en gang bestemt betingelse er oppfylt på 136 00:06:26,980 --> 00:06:30,494 venstre, deretter utføre setningen. 137 00:06:30,494 --> 00:06:31,462 Ja? 138 00:06:31,462 --> 00:06:33,720 >> STUDENT: Hvis en variabel representerer et tall, kan du 139 00:06:33,720 --> 00:06:36,302 bruke variabelen inni boolske som den grønne, 140 00:06:36,302 --> 00:06:36,790 for eksempel? 141 00:06:36,790 --> 00:06:37,540 ZAMYLA CHAN: Ja, det kan du. 142 00:06:37,540 --> 00:06:41,500 Du kan dra og slippe variabelverdien inni 143 00:06:41,500 --> 00:06:42,750 sirkulær form der. 144 00:06:48,820 --> 00:06:52,160 >> Nå er en av fordelene med datamaskiner enorme kraft 145 00:06:52,160 --> 00:06:54,980 og hastigheten som de kan utføre repeterende prosesser. 146 00:06:54,980 --> 00:07:00,370 Og så, i stedet for, sier gjenta en instruksjon i 147 00:07:00,370 --> 00:07:03,020 og igjen og igjen og faktisk skrive det ut - eller 148 00:07:03,020 --> 00:07:05,000 i dette tilfellet, i Scratch, dra og slippe og 149 00:07:05,000 --> 00:07:05,960 dra og slippe - 150 00:07:05,960 --> 00:07:08,750 hva vi kan gjøre, er kapsle det i en loop. 151 00:07:08,750 --> 00:07:11,640 Og så kan løkker brukes til enten utføre ting 152 00:07:11,640 --> 00:07:14,750 uendelig med evig løkke, eller for et 153 00:07:14,750 --> 00:07:15,880 angi antall ganger - 154 00:07:15,880 --> 00:07:20,800 si, gjentar "Si hei" 10 ganger eller til en viss 155 00:07:20,800 --> 00:07:22,040 betingelsen er sann. 156 00:07:22,040 --> 00:07:26,370 Og så igjen, ser du at Scratch er antydet at når 157 00:07:26,370 --> 00:07:29,540 du har en tilstand som "gjenta inntil", da den eneste 158 00:07:29,540 --> 00:07:34,760 ting som vil passe inn der er en boolsk verdi. 159 00:07:34,760 --> 00:07:35,120 OK. 160 00:07:35,120 --> 00:07:38,170 >> Så nå vet vi at vi kan kapsle repeterende 161 00:07:38,170 --> 00:07:39,840 prosesser inne i løkker. 162 00:07:39,840 --> 00:07:42,880 Du kan se hvorfor noe sånt som dette ikke kan være ideelt. 163 00:07:42,880 --> 00:07:45,600 Det passer ikke på lysbildet. 164 00:07:45,600 --> 00:07:48,500 I hovedsak gjør det bare det samme om og om igjen 165 00:07:48,500 --> 00:07:49,340 10 ganger, faktisk. 166 00:07:49,340 --> 00:07:53,380 Den beveger seg 10 trinn, sier Hei, flytter 10 trinn, sier Hei. 167 00:07:53,380 --> 00:07:56,140 Så nå kan du se at når vi har løkker, noe som 168 00:07:56,140 --> 00:07:58,420 Dette er mye bedre. 169 00:07:58,420 --> 00:08:02,690 Det er kortere, er det mindre, og det faktisk fullfører 170 00:08:02,690 --> 00:08:03,610 samme. 171 00:08:03,610 --> 00:08:06,420 Nå, i Scratch dette kan ikke gjøre mye av en forskjell, men 172 00:08:06,420 --> 00:08:08,510 det sparer faktisk litt tid. 173 00:08:12,720 --> 00:08:16,800 >> Så til variable uttrykk - 174 00:08:16,800 --> 00:08:20,260 du faktisk kan bruke variabler og sette dem på innsiden av 175 00:08:20,260 --> 00:08:20,930 forhold. 176 00:08:20,930 --> 00:08:23,490 Som uttrykt rett der, ser du at vi har en variabel kalt 177 00:08:23,490 --> 00:08:26,810 "Møte", og vi likhetstegn at for å se om 178 00:08:26,810 --> 00:08:28,040 det er mindre enn 0. 179 00:08:28,040 --> 00:08:30,900 Så variabler er i hovedsak vil jeg si, 180 00:08:30,900 --> 00:08:32,330 containere for verdier. 181 00:08:32,330 --> 00:08:36,330 I bunnen av, kan disse typer verdier enten være ord eller 182 00:08:36,330 --> 00:08:37,390 de kan være tall. 183 00:08:37,390 --> 00:08:41,860 Og så, med disse variablene, hva vi kan gjøre med dem er vi 184 00:08:41,860 --> 00:08:42,970 kan sette sin verdi. 185 00:08:42,970 --> 00:08:46,590 Så i det første eksemplet her har vi et eksempel på tekst 186 00:08:46,590 --> 00:08:50,470 inneholder verdien "Hello, World!" I det andre eksemplet, 187 00:08:50,470 --> 00:08:53,220 det er antatt at vi allerede har en variabel kalt 188 00:08:53,220 --> 00:08:56,020 "Møte", og i så fall, vi endrer det ved tre. 189 00:08:56,020 --> 00:08:58,170 Vi økes det med 3. 190 00:08:58,170 --> 00:09:01,680 Og deretter i det siste eksemplet kan variablene dras 191 00:09:01,680 --> 00:09:04,320 å bli satt i en boolsk uttrykk. 192 00:09:06,830 --> 00:09:12,200 >> Nå, når du oppretter en variabel, hva du har å 193 00:09:12,200 --> 00:09:16,900 bestemme er om du gjør variabelen for alle 194 00:09:16,900 --> 00:09:19,380 sprites i Lotteri-programmet, eller for bare 195 00:09:19,380 --> 00:09:22,710 spesifikk sprite der du har valgt når du gjør 196 00:09:22,710 --> 00:09:23,930 variabelen. 197 00:09:23,930 --> 00:09:27,480 Og så dette er en veldig viktig avgjørelse å ta. 198 00:09:27,480 --> 00:09:30,100 Og det virkelig kommer ned til hva omfang du vil at 199 00:09:30,100 --> 00:09:31,200 variabel å ha. 200 00:09:31,200 --> 00:09:35,170 Så for eksempel, ville et eksempel på lokal omfanget være hvis du 201 00:09:35,170 --> 00:09:38,370 velge bare for denne sprite å ha variabelen. 202 00:09:38,370 --> 00:09:43,250 Så det ville bety at bare det sprite ville være i stand til å 203 00:09:43,250 --> 00:09:44,440 tilgang til det variable. 204 00:09:44,440 --> 00:09:46,670 Bare at sprite ville være i stand til å se det, 205 00:09:46,670 --> 00:09:48,020 endre det, endre det. 206 00:09:48,020 --> 00:09:49,910 Hvis du velger for å ha en global omfang - 207 00:09:49,910 --> 00:09:52,520 så det er hvis du sier for alle sprites, hvis 208 00:09:52,520 --> 00:09:53,960 du velger dette alternativet - 209 00:09:53,960 --> 00:09:57,780 så det betyr at scenen så vel som alle de sprites 210 00:09:57,780 --> 00:10:01,350 vil kunne se, endre og få tilgang til variabelen som 211 00:10:01,350 --> 00:10:04,420 du har opprettet. 212 00:10:04,420 --> 00:10:07,080 Eventuelle spørsmål så langt på variabler eller noe? 213 00:10:07,080 --> 00:10:08,674 Ja. 214 00:10:08,674 --> 00:10:11,248 >> STUDENT: For variablene, kan du ha to variablene 215 00:10:11,248 --> 00:10:14,300 samme navn hvis de er på forskjellige sprites? 216 00:10:14,300 --> 00:10:16,370 ZAMYLA CHAN: Så lenge de er lokale sprites --- 217 00:10:18,870 --> 00:10:20,700 ah, ja, beklager. 218 00:10:20,700 --> 00:10:24,010 Så spørsmålet var om du kan ha to variablene 219 00:10:24,010 --> 00:10:28,890 samme navn i et program, og hvis du har to variabler med 220 00:10:28,890 --> 00:10:32,760 samme navn, men er både lokale sprites, så en sprite, 221 00:10:32,760 --> 00:10:36,070 katten har en variabel navn "counter", og to sprite, den 222 00:10:36,070 --> 00:10:38,870 hund, har en variabel kalt "counter", så lenge som de 223 00:10:38,870 --> 00:10:43,040 er både lokale sprites, da deres virkeområde ikke strekker til 224 00:10:43,040 --> 00:10:44,540 resten av programmet. 225 00:10:44,540 --> 00:10:47,080 Og så ingen av de andre sprites eller 226 00:10:47,080 --> 00:10:48,360 stadiet vil bli forvirret. 227 00:10:53,860 --> 00:10:54,210 OK. 228 00:10:54,210 --> 00:10:58,230 >> Så jeg nevnte tidligere inngangspunkt da vi hadde 229 00:10:58,230 --> 00:11:01,560 når grønn flagget klikket blokk. 230 00:11:01,560 --> 00:11:05,350 Og så hva det er - 231 00:11:05,350 --> 00:11:08,880 det sier OK, når hendelsen skjer at den grønne flagget er 232 00:11:08,880 --> 00:11:11,450 klikket, dette er hva du bør gjøre. 233 00:11:11,450 --> 00:11:13,220 Og så det er faktisk ikke det eneste arrangementet 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 også andre hendelser. 236 00:11:16,060 --> 00:11:18,320 Så vi har, for eksempel, når en tast på 237 00:11:18,320 --> 00:11:19,290 tastaturet trykkes. 238 00:11:19,290 --> 00:11:23,660 Og du kan faktisk velge bokstavene A til Z, 0 239 00:11:23,660 --> 00:11:27,270 til 9 eller piltastene. 240 00:11:27,270 --> 00:11:30,770 Og så har vi også andre hendelser, for eksempel når 241 00:11:30,770 --> 00:11:33,150 sprite klikkes. 242 00:11:33,150 --> 00:11:36,590 Og så når du starter med det, merker du nøkkelen trend 243 00:11:36,590 --> 00:11:38,950 er at de bare har et spor på undersiden, og så 244 00:11:38,950 --> 00:11:42,950 så det, igjen, legger nøkler deg i at ingenting over 245 00:11:42,950 --> 00:11:43,640 blokken. 246 00:11:43,640 --> 00:11:48,770 Du bygger fra det og under. 247 00:11:48,770 --> 00:11:53,040 >> Nå sier, hva skjer hvis vi ønsker noen hendelse skal skje bare 248 00:11:53,040 --> 00:11:58,200 når jeg ikke vet, en katt berører en bestemt del av 249 00:11:58,200 --> 00:11:59,830 scenen eller noe sånt? 250 00:11:59,830 --> 00:12:02,420 Vi har faktisk ikke har noen innebygd i 251 00:12:02,420 --> 00:12:04,410 hendelse for å markere det. 252 00:12:04,410 --> 00:12:07,850 Så det vi må gjøre er faktisk lage vårt eget arrangement. 253 00:12:07,850 --> 00:12:09,950 Og det kalles kringkasting. 254 00:12:09,950 --> 00:12:13,070 Så når du ønsker å signalisere at en viss har skjedd, 255 00:12:13,070 --> 00:12:16,910 så du bruker - i kontrollen kategorien, er det en blokk kalt 256 00:12:16,910 --> 00:12:20,400 "Kringkaste". Og så da, vil du skrive inn navnet på den 257 00:12:20,400 --> 00:12:24,990 Dersom du ønsker å kringkaste, og deretter hvilken 258 00:12:24,990 --> 00:12:26,350 sprite eller sprites - 259 00:12:26,350 --> 00:12:28,640 du kan ha flere sprites reagerer på denne meldingen - 260 00:12:28,640 --> 00:12:31,460 eller scenen må håndtere det, vil måtte 261 00:12:31,460 --> 00:12:34,970 mottar det, vil ha å si, OK, jeg forstår at dette har 262 00:12:34,970 --> 00:12:37,850 skjedde, så jeg kommer til å gjøre dette med det. 263 00:12:37,850 --> 00:12:40,850 Og så når du sender en hendelse, er at med 264 00:12:40,850 --> 00:12:44,870 forståelse av at enten at sprite eller annen sprite er 265 00:12:44,870 --> 00:12:47,860 nødt til å motta denne hendelsen og svare. 266 00:12:52,610 --> 00:12:55,710 >> Nå den siste konseptet før vi kommer inn et faktisk eksempel 267 00:12:55,710 --> 00:12:58,390 av en Scratch programmet er tråder. 268 00:12:58,390 --> 00:13:02,110 Så tråder er når datamaskinen utfører 269 00:13:02,110 --> 00:13:04,320 samtidige prosesser samtidig. 270 00:13:04,320 --> 00:13:06,940 Jeg kan garantere deg at alle av oss har tatt nytte av 271 00:13:06,940 --> 00:13:09,810 trådene når vi vi ser en film på samme tid som 272 00:13:09,810 --> 00:13:11,540 skrive et essay eller noe sånt. 273 00:13:11,540 --> 00:13:14,020 Datamaskinen utfører flere ting samtidig 274 00:13:14,020 --> 00:13:17,480 tid, akkurat som Scratch kan. 275 00:13:17,480 --> 00:13:22,060 Så som du kan se i dette eksempelet, disse to skript kan 276 00:13:22,060 --> 00:13:25,460 brukes for nøyaktig samme sprite, fordi disse 277 00:13:25,460 --> 00:13:27,590 begynner Entry Point blokker kan faktisk brukes 278 00:13:27,590 --> 00:13:28,840 multipler av ganger. 279 00:13:28,840 --> 00:13:32,570 Jeg kan garantere deg at sannsynligvis den grønne flagg klikket blokk 280 00:13:32,570 --> 00:13:36,890 vil være en av de mest populære 281 00:13:36,890 --> 00:13:39,230 blokker i programmet. 282 00:13:39,230 --> 00:13:43,500 Så her ser vi at når det grønne flagget er klikket, det er 283 00:13:43,500 --> 00:13:47,970 en prosess som skjer, samt når den grønne flagget er 284 00:13:47,970 --> 00:13:50,150 klikket, det er en egen prosess som skjer. 285 00:13:50,150 --> 00:13:53,650 Og så Scratch vil kjøre disse to samtidig. 286 00:13:53,650 --> 00:13:55,930 Og så bruker disse trådene, og vite at du faktisk kan 287 00:13:55,930 --> 00:13:58,010 har mer enn én oppføring punkt - 288 00:13:58,010 --> 00:14:00,450 selv om det er det samme inngangspunktet - 289 00:14:00,450 --> 00:14:04,340 det kommer til å bli veldig nyttig hvis du ønsker å si, 290 00:14:04,340 --> 00:14:06,290 skille forskjellige oppgaver fra hverandre. 291 00:14:10,060 --> 00:14:10,490 OK. 292 00:14:10,490 --> 00:14:17,670 Så la oss faktisk se inn et eksempel på en Scratch program. 293 00:14:25,790 --> 00:14:26,360 >> OK. 294 00:14:26,360 --> 00:14:29,150 Så jeg har allerede gjort et lite program for oss her. 295 00:14:29,150 --> 00:14:34,740 Så jeg skal bare klikk på den grønne flagget for å starte og se 296 00:14:34,740 --> 00:14:36,520 hva den gjør. 297 00:14:36,520 --> 00:14:39,590 Så vi har en oransje fisk her - 298 00:14:39,590 --> 00:14:41,420 en fisk sprite - 299 00:14:41,420 --> 00:14:47,960 synes å bevege seg og deretter nullstille og gå tilbake. 300 00:14:47,960 --> 00:14:49,250 Og så har vi en hai sprite. 301 00:14:49,250 --> 00:14:51,705 Og dette hai sprite kan bevege seg, kan det rotere, kan det 302 00:14:51,705 --> 00:14:53,180 svømme rundt. 303 00:14:53,180 --> 00:14:53,520 OK. 304 00:14:53,520 --> 00:14:56,650 Så det er litt moro. 305 00:14:56,650 --> 00:15:00,750 Men vi kan definitivt legge mer til det. 306 00:15:00,750 --> 00:15:05,790 For eksempel ser vi at når haien er i bevegelse, kan det 307 00:15:05,790 --> 00:15:07,740 faktisk får av skjermen og nesten 308 00:15:07,740 --> 00:15:11,150 forsvinner ut av syne. 309 00:15:11,150 --> 00:15:13,010 Så vi ønsker å endre det, fordi vi ikke vil at 310 00:15:13,010 --> 00:15:14,610 hai å unnslippe. 311 00:15:14,610 --> 00:15:19,840 Og så la oss stanse vår manus og deretter redigere hai 312 00:15:19,840 --> 00:15:22,720 skript, kanskje legge til noe. 313 00:15:22,720 --> 00:15:27,400 Legg merke til at i dette bestemte sprite her, evig sløyfe 314 00:15:27,400 --> 00:15:29,160 ender med en rett kant. 315 00:15:29,160 --> 00:15:30,920 Det har ikke noen spor. 316 00:15:30,920 --> 00:15:34,410 Så faktisk dette er fornuftig, fordi det er en evig loop. 317 00:15:34,410 --> 00:15:37,430 Det utfører noe uendelig. 318 00:15:37,430 --> 00:15:40,240 Så det vil ikke ta slutt. 319 00:15:40,240 --> 00:15:41,810 Selv om det var noe under det, ville 320 00:15:41,810 --> 00:15:43,030 aldri komme til det. 321 00:15:43,030 --> 00:15:49,000 Så du er faktisk nødt til å innføre en tråd. 322 00:15:49,000 --> 00:15:49,500 >> OK. 323 00:15:49,500 --> 00:15:52,490 Så la oss legge til en annen script. 324 00:15:52,490 --> 00:15:55,210 Så jeg kommer til å starte med dette innlegget punktet når grønn 325 00:15:55,210 --> 00:15:56,850 flagg klikkes. 326 00:15:56,850 --> 00:16:04,900 Så det jeg ønsker å gjøre er å sjekke kontinuerlig om 327 00:16:04,900 --> 00:16:07,210 hai kommer til å berøre kanten. 328 00:16:07,210 --> 00:16:10,560 Men jeg vet det, faktisk, under Motion det er en ryddig 329 00:16:10,560 --> 00:16:16,170 liten blokk som sier, oh, hvis du er på kanten, sprett. 330 00:16:16,170 --> 00:16:18,930 Så det vi ønsker å gjøre er kontinuerlig utføre. 331 00:16:18,930 --> 00:16:22,010 Og så hva dette "hvis du er på kanten, bounce" gjør - det faktisk 332 00:16:22,010 --> 00:16:26,170 allerede sjekker om jeg er på kanten, deretter sprette tilbake. 333 00:16:26,170 --> 00:16:31,770 Så vi må finne en slags loop til kontinuerlig 334 00:16:31,770 --> 00:16:34,350 utføre denne uttalelsen. 335 00:16:34,350 --> 00:16:37,360 Så hvis vi ser under kontroll, har noen en idé om 336 00:16:37,360 --> 00:16:42,060 hva sløyfe vi kanskje vil bruke? 337 00:16:42,060 --> 00:16:42,530 Ja. 338 00:16:42,530 --> 00:16:43,470 >> STUDENT: Den evig loop. 339 00:16:43,470 --> 00:16:44,300 ZAMYLA CHAN: Akkurat, ja. 340 00:16:44,300 --> 00:16:45,080 Den evig loop. 341 00:16:45,080 --> 00:16:48,370 Så la oss spore det her, og så si, hvis du er på kanten, sprette. 342 00:16:48,370 --> 00:16:51,580 Og så la oss se. 343 00:16:51,580 --> 00:16:52,120 OK. 344 00:16:52,120 --> 00:16:54,460 Så fisken beveger seg som per vanlig. 345 00:16:54,460 --> 00:16:55,540 Og så, oh - 346 00:16:55,540 --> 00:17:00,280 Nå haien ikke kan unnslippe, og spretter ut av skjermen. 347 00:17:00,280 --> 00:17:01,155 Cool. 348 00:17:01,155 --> 00:17:01,600 OK. 349 00:17:01,600 --> 00:17:02,770 Så jeg var ute i. 350 00:17:02,770 --> 00:17:03,710 Jeg L ° vernes - Ja? 351 00:17:03,710 --> 00:17:06,196 >> STUDENT: Hvordan lager du som gjelder for hai når den beveger seg 352 00:17:06,196 --> 00:17:07,329 til fisk? 353 00:17:07,329 --> 00:17:07,780 ZAMYLA CHAN: Ah. 354 00:17:07,780 --> 00:17:15,910 Så grunnen hvorfor bare haien spretter, i motsetning til 355 00:17:15,910 --> 00:17:20,530 fisk også, fordi dette skriptet som vi skrev er inne 356 00:17:20,530 --> 00:17:21,290 haien sprite. 357 00:17:21,290 --> 00:17:22,950 Du skjønner, her oppe, er haien sprite valgt. 358 00:17:25,609 --> 00:17:25,990 OK. 359 00:17:25,990 --> 00:17:30,730 Så la oss legge til noe annet. 360 00:17:30,730 --> 00:17:34,260 Jeg var å utforske på de ulike kostymer som 361 00:17:34,260 --> 00:17:37,870 Scratch har, og jeg så denne søte lille hai-chomp. 362 00:17:37,870 --> 00:17:41,070 Så jeg tenkte at, hei, vel, kanskje vi kan implementere 363 00:17:41,070 --> 00:17:45,975 hai chomping, for eksempel når vi trykker plass. 364 00:17:45,975 --> 00:17:47,560 Jeg bare kommer til å stoppe dette. 365 00:17:47,560 --> 00:17:49,990 OK. 366 00:17:49,990 --> 00:17:50,476 Ja. 367 00:17:50,476 --> 00:17:54,370 >> STUDENT: Kan du bare vise - er at under Kostymer? 368 00:17:54,370 --> 00:17:54,900 ZAMYLA CHAN: Å, ja. 369 00:17:54,900 --> 00:17:59,560 Så jeg gikk under Kostymer, og da jeg så under import. 370 00:17:59,560 --> 00:18:02,780 Og så her har Scratch en hel rekke kostymer som 371 00:18:02,780 --> 00:18:03,500 du kan velge. 372 00:18:03,500 --> 00:18:07,120 Og så så er det en hel haug med dyr, og deretter 373 00:18:07,120 --> 00:18:09,560 hai har et par kostymer forbundet med det. 374 00:18:15,116 --> 00:18:15,580 OK. 375 00:18:15,580 --> 00:18:22,480 Så i dette skriptet her, jeg sjekker allerede kontinuerlig 376 00:18:22,480 --> 00:18:26,090 i evig loop, OK, vel, hvis venstre pil trykkes, 377 00:18:26,090 --> 00:18:28,720 så jeg vil rotere mot klokken. 378 00:18:28,720 --> 00:18:32,180 Hvis høyre pil trykkes, vil jeg rotere med klokken. 379 00:18:32,180 --> 00:18:33,800 Hvis pil opp trykkes, så jeg 380 00:18:33,800 --> 00:18:36,050 ønsker å gå videre fremover. 381 00:18:36,050 --> 00:18:42,250 Så hva vi kan gjøre er å legge bare til dette skriptet, i stedet for 382 00:18:42,250 --> 00:18:45,350 legge til en separat, fordi dette er allerede sjekker inn 383 00:18:45,350 --> 00:18:48,640 som tema taster blir trykket. 384 00:18:48,640 --> 00:18:52,050 >> Så la oss legge til en som sier at hvis mellomromstasten - la oss bruke 385 00:18:52,050 --> 00:18:54,200 mellomromstasten for å chomp ned. 386 00:18:54,200 --> 00:18:58,970 Så disse mot venstre pilen trykkes, et cetera, disse er 387 00:18:58,970 --> 00:19:00,680 i lysere blå. 388 00:19:00,680 --> 00:19:04,520 Så la oss gå til Sensing lysere blå, og ser ned. 389 00:19:04,520 --> 00:19:09,020 Oh, og her er en nøkkel plass trykket. 390 00:19:09,020 --> 00:19:13,510 Så det vi ønsker å gjøre er å ha haien bryteren til 391 00:19:13,510 --> 00:19:15,320 chomping ned kostyme. 392 00:19:15,320 --> 00:19:16,670 Som har å gjøre med hvordan haien 393 00:19:16,670 --> 00:19:18,160 ser, så vi går til utseende. 394 00:19:18,160 --> 00:19:21,560 Og her har vi, beleilig, bytte til 395 00:19:21,560 --> 00:19:23,680 kostyme hai-chomp. 396 00:19:23,680 --> 00:19:27,980 Men når vi chomp ned, ønsker vi ikke haien til å være 397 00:19:27,980 --> 00:19:30,820 chomping ned for alltid, så la oss legge til, OK, vel da, 398 00:19:30,820 --> 00:19:36,950 etter at det chomps, vi vil ha det å bytte tilbake. 399 00:19:36,950 --> 00:19:41,790 OK, så la oss se hva som gjør. 400 00:19:41,790 --> 00:19:43,990 Så vi har det å bevege seg rundt. 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 er chomping slags raskt skjønt, fordi i Scratch, 404 00:19:51,240 --> 00:19:53,710 det utfører dem umiddelbart. 405 00:19:53,710 --> 00:19:58,300 Så, la oss gå til kontroll og gjøre det setter sin 406 00:19:58,300 --> 00:19:59,785 chomp, vente ett sekund. 407 00:20:03,890 --> 00:20:09,130 Og her er det chomps ned litt lenger før det går 408 00:20:09,130 --> 00:20:11,180 tilbake til sult sin. 409 00:20:11,180 --> 00:20:11,530 >> OK. 410 00:20:11,530 --> 00:20:13,210 Så jeg er ganske fornøyd med hai nå. 411 00:20:13,210 --> 00:20:18,740 Men fisken, hva det ser ut til å være å gjøre - det er framdrift en 412 00:20:18,740 --> 00:20:20,750 par trinn, faktisk, fem ganger. 413 00:20:20,750 --> 00:20:24,940 Den beveger seg 50 trinn. 414 00:20:24,940 --> 00:20:29,280 Og hva det gjør her i denne toppblokk her er jeg 415 00:20:29,280 --> 00:20:35,180 sa OK, vel, det kommer til å gå til en bestemt verdi av x. 416 00:20:35,180 --> 00:20:38,560 For å finne koordinatene, kan du faktisk bare musen over 417 00:20:38,560 --> 00:20:40,550 skjermen, og deretter i bunnen - 418 00:20:40,550 --> 00:20:41,530 rett over her - 419 00:20:41,530 --> 00:20:43,210 det vil vise deg hva koordinatene er. 420 00:20:43,210 --> 00:20:45,950 Så du kan dra nytte av det å legge inn koordinater 421 00:20:45,950 --> 00:20:46,830 som du ønsker. 422 00:20:46,830 --> 00:20:49,160 Og så hva denne uttalelsen her sier sier, OK, 423 00:20:49,160 --> 00:20:54,200 vel, starter fisk på denne bestemte x-verdi og deretter 424 00:20:54,200 --> 00:20:55,540 høyde av det kan endre. 425 00:20:55,540 --> 00:20:59,740 Jeg er faktisk kommer til å plukke en tilfeldig høyde som fortsatt holder 426 00:20:59,740 --> 00:21:02,580 innenfor rammen av scenen. 427 00:21:02,580 --> 00:21:04,320 Og så her, hva jeg tar nytte av er 428 00:21:04,320 --> 00:21:05,680 kringkasting hendelser. 429 00:21:05,680 --> 00:21:09,310 Så du ser at dette hendelseshåndterer er ny fish1. 430 00:21:09,310 --> 00:21:14,730 Så når fisken får den nye fish1 hendelse, vil det 431 00:21:14,730 --> 00:21:16,250 utføre dette. 432 00:21:16,250 --> 00:21:19,740 Og så ser du at etter den beveger seg fremover sitt sett beløp 433 00:21:19,740 --> 00:21:21,400 ganger, så det sender faktisk 434 00:21:21,400 --> 00:21:22,720 igjen, OK, nye fish1. 435 00:21:25,560 --> 00:21:31,860 Men i stedet, hvor om la oss gjøre det slik at fisken bare 436 00:21:31,860 --> 00:21:35,320 fortsetter til slutten av skjermen før den tilbakestilles, 437 00:21:35,320 --> 00:21:37,180 i stedet for bare slags gå til sentrum av den. 438 00:21:40,480 --> 00:21:46,180 Så i stedet for å si, gjenta fem ganger - fordi vi ikke 439 00:21:46,180 --> 00:21:48,380 virkelig vet hvor mange ganger vil være nødvendig før det 440 00:21:48,380 --> 00:21:52,180 når slutten av skjermen, la oss bruke noe annet. 441 00:21:52,180 --> 00:21:54,870 >> Så jeg kommer til å skille ut dette, fordi vi 442 00:21:54,870 --> 00:21:56,080 egentlig ikke ønsker dette. 443 00:21:56,080 --> 00:21:59,610 Hvis du vil slette blokker i Scratch, hva du gjør er at du bare dra 444 00:21:59,610 --> 00:22:03,415 den til venstre, slipp, og så det blir slettet. 445 00:22:03,415 --> 00:22:05,470 Hvis du bestemmer deg for at du ikke ønsker å gjøre det, så kan du 446 00:22:05,470 --> 00:22:08,970 alltid angre slettingen. 447 00:22:08,970 --> 00:22:10,640 Men vi ønsker å bli kvitt dette. 448 00:22:10,640 --> 00:22:15,490 Hva vi ønsker å gjøre er vi ønsker å holde på å flytte 50 trinn og 449 00:22:15,490 --> 00:22:19,400 pause ett sekund til vi berører enden av skjermen. 450 00:22:19,400 --> 00:22:25,480 Så kan noen oppdage en løkke som vi kanskje vil bruke den 451 00:22:25,480 --> 00:22:28,750 gjentar en prosess akkurat før vi berører skjermen. 452 00:22:31,594 --> 00:22:33,490 >> STUDENT: Gjenta til. 453 00:22:33,490 --> 00:22:36,750 ZAMYLA CHAN: Jeg hørte "gjenta inntil", og det er riktig. 454 00:22:36,750 --> 00:22:40,990 Så ja, dette tar gjenta inntil blokken også et - 455 00:22:40,990 --> 00:22:43,770 men vi ser at dette gjentar til blokken er ikke helt 456 00:22:43,770 --> 00:22:44,570 komplett, ikke sant? 457 00:22:44,570 --> 00:22:48,490 Så vi trenger å si, OK, vel, gjenta inntil da? 458 00:22:48,490 --> 00:22:51,380 Så vi sier, OK, vel, gjenta til fisken berører 459 00:22:51,380 --> 00:22:52,680 kanten av skjermen. 460 00:22:52,680 --> 00:22:55,230 Og så skal jeg fortelle deg at det er under Sensing. 461 00:22:55,230 --> 00:22:58,930 Det er denne rørende Boolsk. 462 00:22:58,930 --> 00:23:04,510 Og så kan du velge her hva du ønsker å være sjekker 463 00:23:04,510 --> 00:23:05,530 at fisken er rørende. 464 00:23:05,530 --> 00:23:09,200 Så her ønsker vi å si berøre kanten. 465 00:23:09,200 --> 00:23:13,110 Og så ønsker vi å legge til denne tilbake igjen 466 00:23:13,110 --> 00:23:21,940 Og så nå, hvis vi ser vår fisk går, når den berører 467 00:23:21,940 --> 00:23:25,170 kant, vil den bevege seg tilbake igjen. 468 00:23:25,170 --> 00:23:25,660 OK. 469 00:23:25,660 --> 00:23:27,390 Så jeg er fornøyd med det. 470 00:23:27,390 --> 00:23:30,890 Og la oss åpne HungryShark1. 471 00:23:34,620 --> 00:23:38,230 >> OK, typen som en cooking show, jeg har lagt litt 472 00:23:38,230 --> 00:23:39,850 flere funksjoner. 473 00:23:39,850 --> 00:23:43,080 Så for eksempel, ser du at fisken nå er faktisk 474 00:23:43,080 --> 00:23:45,960 gli ganske greit, i motsetning til før, da det var 475 00:23:45,960 --> 00:23:48,350 slags flytting og stoppe, flytte og stoppe - 476 00:23:48,350 --> 00:23:52,890 egentlig bare hoppe sett piksler. 477 00:23:52,890 --> 00:23:56,810 Jeg så under Motion, fant dette gli uttalelse, og jeg 478 00:23:56,810 --> 00:24:00,515 sa OK, i stedet for bare å flytte og stoppe, flytting 479 00:24:00,515 --> 00:24:04,850 og stoppe, jeg kommer til å gli 70 enheter til høyre, 480 00:24:04,850 --> 00:24:08,500 men bo på min samme y posisjon her. 481 00:24:08,500 --> 00:24:09,680 OK. 482 00:24:09,680 --> 00:24:11,430 Så vi har en hai som kan chomp. 483 00:24:13,940 --> 00:24:15,060 Cool. 484 00:24:15,060 --> 00:24:18,610 Men det kalles HungryShark, tross alt, så la oss få 485 00:24:18,610 --> 00:24:20,550 hai spise fisk. 486 00:24:20,550 --> 00:24:29,120 >> Så hvordan kan vi fortelle fisken eller fortelle haien at den har 487 00:24:29,120 --> 00:24:30,680 chomped ned? 488 00:24:30,680 --> 00:24:32,470 Hvordan kan vi kommunisere? 489 00:24:32,470 --> 00:24:33,220 Ja. 490 00:24:33,220 --> 00:24:35,120 STUDENT: På den andre kostyme av hai, 491 00:24:35,120 --> 00:24:36,550 den fanger fisken. 492 00:24:36,550 --> 00:24:38,460 ZAMYLA CHAN: Ja, akkurat. 493 00:24:38,460 --> 00:24:42,710 Så vi vet at når vi bytter kostyme til 494 00:24:42,710 --> 00:24:45,500 chomp, at vi har chomp ned. 495 00:24:45,500 --> 00:24:49,530 Nå vil vi til slutt nødt til å sjekke. 496 00:24:49,530 --> 00:24:51,880 Si at vi ønsker fisken å forsvinne når den spises. 497 00:24:51,880 --> 00:24:54,820 Vi vil ha en eller annen måte kommunisere til fisken som 498 00:24:54,820 --> 00:24:59,405 det må skjule, for eksempel, eller forsvinne fra 499 00:24:59,405 --> 00:25:01,670 skjermen når den er blitt chomped ned på. 500 00:25:01,670 --> 00:25:08,200 >> Så hva slags konsept, hva slags verktøy vi kan bruke til å 501 00:25:08,200 --> 00:25:10,440 har haien kommunisere til fisken, OK, 502 00:25:10,440 --> 00:25:11,526 Jeg har chomped ned? 503 00:25:11,526 --> 00:25:12,340 STUDENT: Broadcasting. 504 00:25:12,340 --> 00:25:14,290 ZAMYLA CHAN: Ja, akkurat, kringkasting en hendelse. 505 00:25:14,290 --> 00:25:17,733 Så la oss gå til kontroll og la oss si sendingen. 506 00:25:20,280 --> 00:25:24,730 Og la oss sende chomp. 507 00:25:24,730 --> 00:25:25,420 OK. 508 00:25:25,420 --> 00:25:27,690 Men når vi sender noe, er at med 509 00:25:27,690 --> 00:25:29,390 antagelsen om at vi faktisk kommer til å ha noe 510 00:25:29,390 --> 00:25:30,360 motta den. 511 00:25:30,360 --> 00:25:32,110 Og så det kommer til å være fisk. 512 00:25:32,110 --> 00:25:36,600 Så la oss si, når jeg får chomp. 513 00:25:40,360 --> 00:25:43,720 Nå, når haien chomp ned bare en tom plass, gjør vi ikke 514 00:25:43,720 --> 00:25:46,180 ønsker fisken å reagere på i det hele tatt. 515 00:25:46,180 --> 00:25:50,780 Så la oss si, OK, vel, bare hvis haien berører 516 00:25:50,780 --> 00:25:52,310 fisk på tidspunktet for chomp - 517 00:25:52,310 --> 00:25:54,210 Det er da vi skal faktisk gjøre noe. 518 00:25:54,210 --> 00:25:58,560 Så da kommer vi til å bruke tilstanden hvis, høyre, 519 00:25:58,560 --> 00:26:01,100 fordi vi sjekker om noe er sant eller ikke. 520 00:26:01,100 --> 00:26:03,170 Så hvis vi går tilbake til Sensing, så kan vi 521 00:26:03,170 --> 00:26:05,760 bruke her, hvis rørende. 522 00:26:05,760 --> 00:26:07,490 Og så her, velger vi haien. 523 00:26:12,280 --> 00:26:14,710 Deretter under Looks, denne diskrete blokk - 524 00:26:14,710 --> 00:26:19,250 som vil i utgangspunktet gjøre fisken forsvinner fra scenen. 525 00:26:19,250 --> 00:26:22,760 Vi vil gjøre det skjule, men vi ønsker en annen fisk, ikke sant? 526 00:26:22,760 --> 00:26:23,820 Vår hai er sulten. 527 00:26:23,820 --> 00:26:24,960 Vi ønsker å gi det mer fisk. 528 00:26:24,960 --> 00:26:31,640 Så da la oss også kringkaste en ny fisk igjen. 529 00:26:31,640 --> 00:26:31,890 OK. 530 00:26:31,890 --> 00:26:35,880 Så la oss se hva som gjør. 531 00:26:35,880 --> 00:26:36,310 >> Cool. 532 00:26:36,310 --> 00:26:38,830 Så det chomps ned og en annen fisk vises. 533 00:26:38,830 --> 00:26:41,360 Men det er litt for rask for en annen fisk å gå. 534 00:26:41,360 --> 00:26:44,610 Så la oss bare vente et sekund før vi 535 00:26:44,610 --> 00:26:45,860 kringkaste en ny fisk. 536 00:26:48,350 --> 00:26:49,110 OK. 537 00:26:49,110 --> 00:26:49,380 OK. 538 00:26:49,380 --> 00:26:52,460 Så dette er en ganske god inngåelse av et spill. 539 00:26:52,460 --> 00:26:54,350 Men alle spillene trenger en score, ikke sant? 540 00:26:54,350 --> 00:26:57,070 Så hva kan vi bruke til å holde score? 541 00:27:00,370 --> 00:27:00,630 Ja. 542 00:27:00,630 --> 00:27:01,005 STUDENT: Annet - 543 00:27:01,005 --> 00:27:01,830 ZAMYLA CHAN: Yeah. 544 00:27:01,830 --> 00:27:02,290 Akkurat. 545 00:27:02,290 --> 00:27:04,520 Ja. 546 00:27:04,520 --> 00:27:06,480 Så vi ønsker å holde styr på i utgangspunktet hvordan 547 00:27:06,480 --> 00:27:07,660 mange fisk det er spist. 548 00:27:07,660 --> 00:27:09,430 For å gjøre det, må vi gjøre en variabel. 549 00:27:09,430 --> 00:27:11,100 La oss kalle det score. 550 00:27:11,100 --> 00:27:14,240 Og så antagelig, siden dette er et spill som vi spiller, 551 00:27:14,240 --> 00:27:18,060 Vi kommer til å ønske at fisken kunne - 552 00:27:18,060 --> 00:27:19,860 si, når det spises det kan øke poengsummen eller 553 00:27:19,860 --> 00:27:23,780 noe og deretter scenen vil trolig måtte gjøre 554 00:27:23,780 --> 00:27:25,020 noe med sår også. 555 00:27:25,020 --> 00:27:28,280 Så jeg kommer til å velge å gjøre dette til en global variabel og si 556 00:27:28,280 --> 00:27:30,920 for alle sprites. 557 00:27:30,920 --> 00:27:31,470 OK. 558 00:27:31,470 --> 00:27:33,880 Så når vi ønsker å øke poengsummen? 559 00:27:33,880 --> 00:27:36,440 Når en fisk har blitt spist. 560 00:27:36,440 --> 00:27:39,390 Og så har vi allerede en prosess her som er å håndtere 561 00:27:39,390 --> 00:27:40,800 med fisken blir spist. 562 00:27:40,800 --> 00:27:43,570 Så la oss legge denne uttalelsen her - 563 00:27:43,570 --> 00:27:44,820 endre Resultat av 1. 564 00:27:49,208 --> 00:27:49,670 Cool. 565 00:27:49,670 --> 00:27:54,580 Så når du spiser en fisk, poengsummen øker. 566 00:27:54,580 --> 00:27:54,790 >> OK. 567 00:27:54,790 --> 00:27:57,090 Så sier jeg lei av dette spillet. 568 00:27:57,090 --> 00:27:58,410 Jeg stoppe. 569 00:27:58,410 --> 00:28:01,110 Og så, oh, jeg ønsker å komme tilbake til spillet. 570 00:28:01,110 --> 00:28:02,630 Jeg ønsker å starte et nytt spill. 571 00:28:02,630 --> 00:28:05,550 Vel, poengsummen fortsatt 3, selv om jeg er 572 00:28:05,550 --> 00:28:06,680 spille et nytt spill. 573 00:28:06,680 --> 00:28:10,190 Vi vet egentlig ikke ønsker å score aldri å nullstille, ikke sant? 574 00:28:10,190 --> 00:28:16,240 Så la oss legge en uttalelse når spillet startet i 575 00:28:16,240 --> 00:28:19,990 scenen for å si, OK, vel, vi ønsker å nullstille score. 576 00:28:19,990 --> 00:28:23,100 Så her har vi satt variabelen poengsummen til 0. 577 00:28:23,100 --> 00:28:27,960 Og så nå, når du starter et spill, poengsummen 578 00:28:27,960 --> 00:28:30,920 vil starte 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å nå, la oss gå videre til HungryShark2. 583 00:28:40,240 --> 00:28:43,500 >> Så jeg har gjort litt mer nå, og det jeg har gjort er 584 00:28:43,500 --> 00:28:44,860 høyre klikket på fisken sprite. 585 00:28:44,860 --> 00:28:47,970 Jeg ønsket mer fisk, og så jeg klikket duplikat, og det gjorde 586 00:28:47,970 --> 00:28:51,930 nytt sprite identisk med den som en, og også kopieres i alle 587 00:28:51,930 --> 00:28:53,030 skript også. 588 00:28:53,030 --> 00:28:56,810 Så da denne fish2 er i hovedsak identisk med 589 00:28:56,810 --> 00:28:59,630 fish1, bortsett fra i stedet for å starte på den venstre og 590 00:28:59,630 --> 00:29:02,550 flytte rett, den starter på høyre og trekk igjen. 591 00:29:02,550 --> 00:29:06,390 Og da jeg valgte også en ny drakt for det. 592 00:29:06,390 --> 00:29:09,022 Så jeg fant en annen drakt som var en flekket fisk, og jeg 593 00:29:09,022 --> 00:29:11,950 var som kult, dette ser giftig, så la oss late 594 00:29:11,950 --> 00:29:13,600 at dette er en giftig fisk. 595 00:29:13,600 --> 00:29:18,250 Og så sa jeg, OK, vel, i stedet for å spise 596 00:29:18,250 --> 00:29:20,980 giftig fisk og ha poengsummen din øker, jeg faktisk 597 00:29:20,980 --> 00:29:22,210 vil den skal avta. 598 00:29:22,210 --> 00:29:27,890 Så her har vi poengsum reduseres med 1 når 599 00:29:27,890 --> 00:29:29,990 hai spiser det. 600 00:29:29,990 --> 00:29:31,650 Og så, jeg likte kostymer som scratch 601 00:29:31,650 --> 00:29:34,450 gitt, og jeg så, og da jeg fant shark's - 602 00:29:34,450 --> 00:29:36,050 det så ut som en syk hai. 603 00:29:36,050 --> 00:29:38,040 Og så så jeg redigerte den jeg gjorde det grønne. 604 00:29:38,040 --> 00:29:41,880 Og jeg var som kult, det er en syk hai. 605 00:29:41,880 --> 00:29:42,150 OK. 606 00:29:42,150 --> 00:29:49,150 >> Så la la oss legge til skriptet en slags måte å gjøre det 607 00:29:49,150 --> 00:29:53,660 hai bryter til å bli syk når det 608 00:29:53,660 --> 00:29:56,800 spiser en forgiftet fisk. 609 00:29:56,800 --> 00:29:57,380 OK. 610 00:29:57,380 --> 00:30:03,620 Så fordi vi kopierte alle skript fra vår opprinnelige 611 00:30:03,620 --> 00:30:07,760 fisken i giften fisk, har det allerede denne sprite her 612 00:30:07,760 --> 00:30:10,680 som sier, når jeg chomped ned, er jeg 613 00:30:10,680 --> 00:30:12,020 faktisk chomped ned? 614 00:30:12,020 --> 00:30:15,660 Så vi kan dra nytte av dette for å kommunisere til 615 00:30:15,660 --> 00:30:18,170 hai, oh, vel, du nettopp spiste en gift fisk. 616 00:30:18,170 --> 00:30:18,850 Du er syk. 617 00:30:18,850 --> 00:30:23,100 Og så dette ville være hva slags handling? 618 00:30:23,100 --> 00:30:25,110 Hva ville være ønsker å gjøre? 619 00:30:25,110 --> 00:30:25,650 Kringkastes. 620 00:30:25,650 --> 00:30:26,240 Ja, akkurat. 621 00:30:26,240 --> 00:30:28,930 Så la oss sendingen. 622 00:30:28,930 --> 00:30:33,650 La oss kalle det hai syk. 623 00:30:33,650 --> 00:30:34,320 OK. 624 00:30:34,320 --> 00:30:36,930 Så nå, haien, selvsagt, skal være den som er 625 00:30:36,930 --> 00:30:38,250 mottar denne hendelsen. 626 00:30:38,250 --> 00:30:44,150 Så la oss legge til når jeg får haien være syk. 627 00:30:44,150 --> 00:30:44,410 OK. 628 00:30:44,410 --> 00:30:46,300 Så vi vet vi har denne drakten - 629 00:30:46,300 --> 00:30:49,400 haien er syk. 630 00:30:49,400 --> 00:30:51,900 Og så vet vi fra før at vi på en måte setter 631 00:30:51,900 --> 00:30:54,420 når vi kan stoppe litt før du bytter tilbake. 632 00:30:54,420 --> 00:30:54,875 Ja? 633 00:30:54,875 --> 00:30:56,467 >> STUDENT: Hvordan kopierer du skript fra 634 00:30:56,467 --> 00:30:57,605 en sprite til en annen? 635 00:30:57,605 --> 00:30:58,510 ZAMYLA CHAN: Ah. 636 00:30:58,510 --> 00:31:03,610 Så i dette tilfellet, når jeg bare kopierte den sprite, til 637 00:31:03,610 --> 00:31:07,880 kopiere ett skript til en annen sprite, hva jeg gjorde her var 638 00:31:07,880 --> 00:31:11,630 bare si duplikat, og det faktisk gjort en hel ny 639 00:31:11,630 --> 00:31:14,110 sprite med alle skript inkludert. 640 00:31:14,110 --> 00:31:18,100 Men si at du ønsker å bare kopiere en viss skript til et annet 641 00:31:18,100 --> 00:31:23,740 sprite, så hva du ville gjøre er faktisk bare dra dette, 642 00:31:23,740 --> 00:31:29,990 sveve over en annen script, og nå her det dupliseres det. 643 00:31:29,990 --> 00:31:32,590 I dette tilfellet, den allerede hadde det, så vi kan bare slette 644 00:31:32,590 --> 00:31:33,170 det igjen. 645 00:31:33,170 --> 00:31:37,060 Men for å kopiere ett skript til et annet, hva du gjør er bare 646 00:31:37,060 --> 00:31:40,230 dra det til de andre sprites. 647 00:31:40,230 --> 00:31:40,490 OK. 648 00:31:40,490 --> 00:31:42,390 >> Så vi er tilbake på hai være syk. 649 00:31:42,390 --> 00:31:45,650 Så det er mottatt hai er syk, og det sier, OK, vel, 650 00:31:45,650 --> 00:31:49,110 når jeg er syk, jeg kommer til å bytte til kostymet mitt som sier 651 00:31:49,110 --> 00:31:54,630 "Hai syk", og nå, la oss bare legge en vente til 652 00:31:54,630 --> 00:31:56,280 verdsette den grønne. 653 00:31:56,280 --> 00:31:59,560 Og så skal vi være sulten igjen, så vi kan bare 654 00:31:59,560 --> 00:32:04,140 bytte tilbake til hai blir sulten. 655 00:32:04,140 --> 00:32:04,460 OK. 656 00:32:04,460 --> 00:32:06,390 Så la oss spise denne lilla fisk. 657 00:32:06,390 --> 00:32:07,640 Det er fint. 658 00:32:10,700 --> 00:32:11,230 Godt spørsmål. 659 00:32:11,230 --> 00:32:13,070 Hva har skjedd 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 score til 0 her, men dette score - hva 662 00:32:23,090 --> 00:32:28,700 Dette merket betyr det skjuler eller unhides variabelen 663 00:32:28,700 --> 00:32:29,775 fra skjermen. 664 00:32:29,775 --> 00:32:34,320 Men hva vi kan gjøre i stedet for fjerne merket eller sjekke det - 665 00:32:34,320 --> 00:32:37,330 Vi kan faktisk ha denne blokken her sier "vise eller skjule 666 00:32:37,330 --> 00:32:40,160 variabelen. "Så la oss sørge for at hver gang vi starter 667 00:32:40,160 --> 00:32:41,945 spillet at variabelen er vist. 668 00:32:44,840 --> 00:32:45,100 >> OK. 669 00:32:45,100 --> 00:32:46,540 Så nå variabelen er vist. 670 00:32:46,540 --> 00:32:52,160 Vi spiser en gift fisk, og vi får syk. 671 00:32:52,160 --> 00:32:53,440 Cool. 672 00:32:53,440 --> 00:32:53,680 OK. 673 00:32:53,680 --> 00:32:56,910 Så nå er det rart for et spill for oss å ha negative 674 00:32:56,910 --> 00:32:57,420 poeng, ikke sant? 675 00:32:57,420 --> 00:33:01,830 Så det holder på å spise disse og det er som - 676 00:33:01,830 --> 00:33:05,190 så hva når vi får negative, hvis vi har spist for 677 00:33:05,190 --> 00:33:10,770 mange giftig fisk, game over - hai er for syk. 678 00:33:10,770 --> 00:33:11,110 OK. 679 00:33:11,110 --> 00:33:12,680 Så det vi må gjøre er vi må 680 00:33:12,680 --> 00:33:14,950 kringkaste noen hendelse - 681 00:33:14,950 --> 00:33:15,960 game over. 682 00:33:15,960 --> 00:33:17,710 Slik at vi kunne gjøre dette på mange måter, faktisk. 683 00:33:17,710 --> 00:33:20,810 Vi kunne ha et sted i scenen et script som 684 00:33:20,810 --> 00:33:22,920 kontinuerlig sjekker poengsummen negative? 685 00:33:22,920 --> 00:33:24,030 Er poengsummen negative? 686 00:33:24,030 --> 00:33:26,910 Hvis ja, så vi kringkaste denne hendelsen. 687 00:33:26,910 --> 00:33:29,120 >> Så det er én måte å gjøre det. 688 00:33:29,120 --> 00:33:31,640 Eller vi kunne dra nytte av det faktum at vi vet at 689 00:33:31,640 --> 00:33:36,990 eneste måten at poengsummen din kan være negativt er når du spiser en 690 00:33:36,990 --> 00:33:38,360 giftig fisk, ikke sant? 691 00:33:38,360 --> 00:33:39,930 Fordi når du spiser annen fisk, din 692 00:33:39,930 --> 00:33:41,240 Resultat kommer til å øke. 693 00:33:41,240 --> 00:33:44,440 Så det er ingen bruk i å sjekke om det skal være 694 00:33:44,440 --> 00:33:46,390 game over eller ikke. 695 00:33:46,390 --> 00:33:50,270 Så dette er en lignende prosess her. 696 00:33:50,270 --> 00:33:53,230 Så vi kan faktisk bare legge til dette "når jeg mottar hai 697 00:33:53,230 --> 00:33:54,700 syk. " 698 00:33:54,700 --> 00:33:59,575 Så sier vi legge denne tilstanden. 699 00:34:02,080 --> 00:34:04,820 Vi ønsker å si, hvis poengsummen er mindre enn 0. 700 00:34:04,820 --> 00:34:07,480 Så vi kommer til å gå til Operatører, vi kommer til å bruke 701 00:34:07,480 --> 00:34:09,650 dette mindre enn én, vi kommer til å dra vår 702 00:34:09,650 --> 00:34:12,800 score her, sier 0. 703 00:34:12,800 --> 00:34:16,920 Og så, hvis poengsummen er 0, så vi ønsker å kringkaste 704 00:34:16,920 --> 00:34:20,790 noe som kalles game over. 705 00:34:23,310 --> 00:34:24,560 >> OK. 706 00:34:26,199 --> 00:34:29,650 Så sier vi har game over. 707 00:34:29,650 --> 00:34:33,199 La oss flytte den her eller noe. 708 00:34:33,199 --> 00:34:38,739 Vel, vi ønsker haien bare å gå tilbake til å være sulten hvis 709 00:34:38,739 --> 00:34:40,980 spillet kan fortsatt bli spilt. 710 00:34:40,980 --> 00:34:43,909 Så i stedet for å bruke en "hvis" vi vil bruke 711 00:34:43,909 --> 00:34:45,380 en "if else" konstruere. 712 00:34:45,380 --> 00:34:48,060 Så hva dette betyr - det sier, OK, så hvis denne tilstanden er 713 00:34:48,060 --> 00:34:51,630 sant, så gjør dette, men hvis det er falsk så gjør dette. 714 00:34:51,630 --> 00:34:54,929 Så la oss legge om poengsummen er mindre enn 0, så du 715 00:34:54,929 --> 00:34:57,730 kringkaste game over, men hvis ikke - hvis 716 00:34:57,730 --> 00:34:59,210 score er fortsatt positiv - 717 00:34:59,210 --> 00:35:00,720 deretter gå tilbake til å være sulten. 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å nå som vi har denne game over hendelsen, vil vi ha 721 00:35:09,390 --> 00:35:11,040 noen måte å reagere på det. 722 00:35:11,040 --> 00:35:16,460 >> Så la oss gjøre et nytt manus som sier "når jeg mottar spillet 723 00:35:16,460 --> 00:35:21,470 over. "Og hva har vi her under kontroll er faktisk dette 724 00:35:21,470 --> 00:35:25,410 stoppe all knappen, og så det i utgangspunktet etterligner deg klikke 725 00:35:25,410 --> 00:35:26,720 det røde stoppskiltet her. 726 00:35:26,720 --> 00:35:30,210 Så la oss ta haien stopp. 727 00:35:30,210 --> 00:35:33,020 Og så ønsker vi også fisken å stoppe, så la oss dra og 728 00:35:33,020 --> 00:35:33,910 kopiere den i. 729 00:35:33,910 --> 00:35:36,830 Vi ønsker all fisken til å stoppe. 730 00:35:36,830 --> 00:35:39,530 Og så la oss få scenen stopp også. 731 00:35:39,530 --> 00:35:39,910 OK. 732 00:35:39,910 --> 00:35:43,730 Så svømmer rundt, spiser vi en fisk, og 733 00:35:43,730 --> 00:35:46,580 så programmet fryser. 734 00:35:46,580 --> 00:35:49,670 Jeg klikke ned, men jeg kan faktisk ikke gjøre noe. 735 00:35:49,670 --> 00:35:56,500 OK, men la oss si at vi ikke ønsker å minne brukeren om at 736 00:35:56,500 --> 00:36:00,410 de har en negativ verdi, for eksempel, så kan vi, for 737 00:36:00,410 --> 00:36:02,820 eksempel skjule variabelen fra skjermen. 738 00:36:02,820 --> 00:36:06,340 Så når scenen får game over, så vil det skjule 739 00:36:06,340 --> 00:36:07,590 variabelen score. 740 00:36:10,714 --> 00:36:12,190 OK. 741 00:36:12,190 --> 00:36:15,025 Så la oss spise en mer fisk. 742 00:36:19,900 --> 00:36:23,420 Og så scorer forsvinner, og du trenger bare denne skjermen. 743 00:36:23,420 --> 00:36:23,660 >> OK. 744 00:36:23,660 --> 00:36:26,530 Så det er en ganske anstendig spill, og hvis du hadde mer 745 00:36:26,530 --> 00:36:30,010 tid, så du kunne til slutt legge 746 00:36:30,010 --> 00:36:31,590 flere og flere skript. 747 00:36:31,590 --> 00:36:34,630 Og så da, jeg har lagt noen flere fisk, gjort dem videre 748 00:36:34,630 --> 00:36:38,830 ved ulike hastigheter, og deretter når haien spiser 749 00:36:38,830 --> 00:36:42,140 giftig fisk, sier det faktisk, "Blech!" 750 00:36:42,140 --> 00:36:45,010 Og så hva jeg gjorde er jeg lagt til en ny bakgrunn til 751 00:36:45,010 --> 00:36:47,210 scenen - et spill over bakgrunnen. 752 00:36:47,210 --> 00:36:53,610 Og så hva scenen gjør i spillet over hendelsen 753 00:36:53,610 --> 00:36:58,100 håndtering er den bytter til bakgrunnen av game over 754 00:36:58,100 --> 00:36:58,880 bakgrunn. 755 00:36:58,880 --> 00:37:03,930 Og i tillegg, gjemte jeg alle sprites fra scenen, slik at 756 00:37:03,930 --> 00:37:07,330 bare spillet over bakgrunnen ble vist. 757 00:37:07,330 --> 00:37:10,620 Det er et par andre små filer som jeg har lagt, 758 00:37:10,620 --> 00:37:14,810 for eksempel, før når vi endte vårt program, så vår 759 00:37:14,810 --> 00:37:18,370 hai, neste gang vi startet, ville starte opp i 760 00:37:18,370 --> 00:37:19,620 den posisjonen samt. 761 00:37:19,620 --> 00:37:23,970 Hva jeg lagt er når det grønne flagget er klikket, så 762 00:37:23,970 --> 00:37:26,920 haien går tilbake til opprinnelsen og deretter vender mot 763 00:37:26,920 --> 00:37:28,490 høyre, slik at hver gang, har du en 764 00:37:28,490 --> 00:37:30,270 hai starter der. 765 00:37:30,270 --> 00:37:32,910 >> Så du kan eksperimentere in Motion og ting som at 766 00:37:32,910 --> 00:37:37,410 bare for å legge små tingene som gjør 767 00:37:37,410 --> 00:37:39,820 spillet litt mer polert. 768 00:37:39,820 --> 00:37:41,190 Har noen spørsmål om HungryShark? 769 00:37:45,610 --> 00:37:46,050 Cool. 770 00:37:46,050 --> 00:37:46,400 OK. 771 00:37:46,400 --> 00:37:49,730 Så det er et eksempel på noe som du kan gjøre 772 00:37:49,730 --> 00:37:53,230 i Scratch bruker alle verktøyene som vi diskuterte tidligere. 773 00:37:53,230 --> 00:37:57,530 Så jeg også inkludert i walkthrough lysbilder. 774 00:37:57,530 --> 00:37:58,460 Du vil se dem senere. 775 00:37:58,460 --> 00:38:01,770 Det er bare en oversikt over de prosesser som vi gjorde - 776 00:38:01,770 --> 00:38:05,130 framdrift fra HungryShark0 hele veien til vårt endelige. 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 er om det. 780 00:38:10,310 --> 00:38:11,690 Jeg skal bo bak hvis dere ønsker å 781 00:38:11,690 --> 00:38:12,990 spør noen flere spørsmål. 782 00:38:12,990 --> 00:38:14,060 Dette var Walkthrough 0. 783 00:38:14,060 --> 00:38:16,250 Takke dere alle for å komme, og jeg vil se deg på Walkthrough en.