[Powered by Google Translate] ZAMYLA CHAN: All right. Hei, alle sammen, og velkommen til Walkthrough 0. Mitt navn er Zamyla, og jeg skal lede disse walkthroughs i år. I CS50, hver oppgavesettet ledsaget av en gjennomgang der vi vil gå gjennom ukens oppgavesettet, snakke det gjennom, snakke om hvordan du kommer i gang, diskutere ulike teknikker og tips for å virkelig bryte problemet satt inn noen håndterbare biter. Jeg er også veldig glad for å svare på eventuelle spørsmål du har på oppgavesettet. Uten videre, jeg er glad du er her, enten du er her i person eller tuning i nettet. La oss komme i gang. Så den første p-set i CS50 - faktisk, vi kommer ikke til å komme inn å skrive og maskin kode ting helt ennå. Vi faktisk kommer til å bruke Scratch, som er en program som tillater oss å gjøre noen dra og slipp programmering. Og så selv om vi ikke skriver, gjør det oss virkelig til utforske noen av de grunnleggende begreper som Vi vil bruke alle hele CS50. Nå, noen av disse konseptene er oppført her i verktøykassa. Det jeg ønsker å gjøre for hver walkthrough er presentere deg alle med et sett med verktøy som du kan bruke for gjennomgang. Og så, ikke bekymre deg. Vi vil gå igjennom alle disse vilkårene og alle disse teorier under gjennomgangen. Nå, om du ender opp med å bruke alle disse verktøyene, eller bare noen av dem, det er virkelig godt å vite hva du er utstyrt med å være i stand til å takle problemet sett. Så i Scratch, er det første lingo som du trenger å vite hva en sprite er. Så hver gjenstand eller hver karakter, det være seg en katt en hund eller en ball, kalles en sprite. Og så, hvis jeg vil, si, to katter - hvorvidt de er identiske - Jeg må gjøre to separate sprites i Scratch. Og så sprites har skript forbundet med dem. Skript er faktisk hva du skal bygge - dra og slippe - med blokker. Og så hva skriptene dine er slags bestemme og definere hvordan sprite oppfører seg. Sprites er faktisk ikke bare bilder, fordi vi har kostymer også forbundet med sprites den slags avgjøre hva sprite ser ut. Og du kan ha mer enn én drakt for en gitt sprite. Så på et tidspunkt under Lotteri-programmet, som vi skal vise senere i dag under gjennomgang, kan du faktisk endre kostyme av sprite din slik at den ser heller litt annerledes eller helt annerledes. Og så er det tre måter å lage en sprite i Scratch. En, kan du tegne din egen i Scratch er bygget i maling editor. Du kan laste opp ditt eget bilde, kan du bruke en av Scratch er innebygd seg, eller, det siste alternativet, får en tilfeldig sprite. Nå, hvis du føler deg spesielt heldig, så jeg ønsker deg velkommen til å prøve lykken og skaper en tilfeldig sprite. Så alle de sprites er plassert på scenen i Scratch. Scenen - vi kan behandle det som lerret vår. Og så alle de sprites er plassert på scenen. Og dette stadiet, er hva det gjør kan alle sprites å flytte rundt på den. Og akkurat som sprites, har scenen også skript. Og så disse skriptene, for å plassere dem på scenen - det er virkelig nyttig når, sier, du har et skript som ikke nøyaktig gjelder for en bestemt sprite, men heller gjelder flere sprites eller bare generelt, noe at du ønsker å gjøre. Så du kan plassere disse skriptene på scenen i stedet, og at ville være litt bedre design. Nå, mens du kan ha flere sprites, er det godt å husk at du bare kan ha én scene. Men stadier har også bakgrunn. I motsetning til kostymer, som spriter gjør, fasene har bakgrunner. Og igjen, kan du enten tegne din egen eller last opp dine egne bilde som skal brukes som bakgrunn. Så noen som har noen spørsmål før vi går videre? OK. Gjerne å avbryte meg hva under gjennomgang, og Jeg er glad for å svare på eventuelle spørsmål du har. OK. Så når du starter sprite program, hva du skal gjøre er du kommer til å klikke på den grønne flagg. Men hvis du ikke koble noe til denne blokken rett her, så ingenting er faktisk kommer til å skje. Fordi, du ser, hva skriptene og scenen må gjøre er å vite faktisk å svare på hendelsen - det er hva vi kaller dem, events - av den grønne flagget blir klikket. Så du må faktisk legge blokker til sporet på bunnen av den grønne flagget klikket blokk, og deretter Programmet vil vite hva du skal gjøre og hvordan de skal reagere på grønt flagg blir klikket. Vel, hva kommer etter det? Vel, vi har en mengde blokker i Scratch å bruke, og hvor kjøttet, egentlig, av programmet ligger i disse uttalelser. Og så disse uttalelsene er beleilig organisert etter farge. Du har handlinger knyttet til bevegelse, lyd, utseende, et cetera. Og så kan du se at du kan navigere mellom dem i faner i Lotteri-programmet. Og så, mens du har andre ting som er bygget rundt det, hva uttalelsene faktisk gjør er faktisk forteller den sprites eller scenen å gjøre noe. I motsetning til bare å si, OK, når du gjør dette, uttalelser faktisk inneholder den virkelige kjøtt av det. Si la oss ønsker å bare utføre en bestemt handling, sier du bare vil katten til meow når en bestemt ting skjer. Vi kan dra nytte av boolske, som du lærte i forelesning en. Og så disse er uttrykk som beregnes til enten sant eller usant. Og så disse er identifisert i Scratch ved - du se vinkler på slutten av disse blokkene. Og så har du en rekke forskjellige typer boolske. Du har "er den mest blir presset ned", "gjør to pluss to likestille til 5, "eller" er brukeren trykker ned en viss tast på tastaturet? " Nå kan du ikke bare bruke disse alene. Hva du trenger å gjøre er å kombinere dem med en betingelse. Så tilstanden er der under kontroll fanen i Scratch. Og så de beleilig har en liten plassholder som viser formen på blokken du trenger for å sette inn i den. Så avhengig av konteksten av situasjonen, kan du velge en boolsk og deretter plassere det inni din tilstand. Og der har du en betinget utsagn. Hvis du putter setningene i den blokken, da har du en struktur satt opp, der en gang bestemt betingelse er oppfylt på venstre, deretter utføre setningen. Ja? STUDENT: Hvis en variabel representerer et tall, kan du bruke variabelen inni boolske som den grønne, for eksempel? ZAMYLA CHAN: Ja, det kan du. Du kan dra og slippe variabelverdien inni sirkulær form der. Nå er en av fordelene med datamaskiner enorme kraft og hastigheten som de kan utføre repeterende prosesser. Og så, i stedet for, sier gjenta en instruksjon i og igjen og igjen og faktisk skrive det ut - eller i dette tilfellet, i Scratch, dra og slippe og dra og slippe - hva vi kan gjøre, er kapsle det i en loop. Og så kan løkker brukes til enten utføre ting uendelig med evig løkke, eller for et angi antall ganger - si, gjentar "Si hei" 10 ganger eller til en viss betingelsen er sann. Og så igjen, ser du at Scratch er antydet at når du har en tilstand som "gjenta inntil", da den eneste ting som vil passe inn der er en boolsk verdi. OK. Så nå vet vi at vi kan kapsle repeterende prosesser inne i løkker. Du kan se hvorfor noe sånt som dette ikke kan være ideelt. Det passer ikke på lysbildet. I hovedsak gjør det bare det samme om og om igjen 10 ganger, faktisk. Den beveger seg 10 trinn, sier Hei, flytter 10 trinn, sier Hei. Så nå kan du se at når vi har løkker, noe som Dette er mye bedre. Det er kortere, er det mindre, og det faktisk fullfører samme. Nå, i Scratch dette kan ikke gjøre mye av en forskjell, men det sparer faktisk litt tid. Så til variable uttrykk - du faktisk kan bruke variabler og sette dem på innsiden av forhold. Som uttrykt rett der, ser du at vi har en variabel kalt "Møte", og vi likhetstegn at for å se om det er mindre enn 0. Så variabler er i hovedsak vil jeg si, containere for verdier. I bunnen av, kan disse typer verdier enten være ord eller de kan være tall. Og så, med disse variablene, hva vi kan gjøre med dem er vi kan sette sin verdi. Så i det første eksemplet her har vi et eksempel på tekst inneholder verdien "Hello, World!" I det andre eksemplet, det er antatt at vi allerede har en variabel kalt "Møte", og i så fall, vi endrer det ved tre. Vi økes det med 3. Og deretter i det siste eksemplet kan variablene dras å bli satt i en boolsk uttrykk. Nå, når du oppretter en variabel, hva du har å bestemme er om du gjør variabelen for alle sprites i Lotteri-programmet, eller for bare spesifikk sprite der du har valgt når du gjør variabelen. Og så dette er en veldig viktig avgjørelse å ta. Og det virkelig kommer ned til hva omfang du vil at variabel å ha. Så for eksempel, ville et eksempel på lokal omfanget være hvis du velge bare for denne sprite å ha variabelen. Så det ville bety at bare det sprite ville være i stand til å tilgang til det variable. Bare at sprite ville være i stand til å se det, endre det, endre det. Hvis du velger for å ha en global omfang - så det er hvis du sier for alle sprites, hvis du velger dette alternativet - så det betyr at scenen så vel som alle de sprites vil kunne se, endre og få tilgang til variabelen som du har opprettet. Eventuelle spørsmål så langt på variabler eller noe? Ja. STUDENT: For variablene, kan du ha to variablene samme navn hvis de er på forskjellige sprites? ZAMYLA CHAN: Så lenge de er lokale sprites --- ah, ja, beklager. Så spørsmålet var om du kan ha to variablene samme navn i et program, og hvis du har to variabler med samme navn, men er både lokale sprites, så en sprite, katten har en variabel navn "counter", og to sprite, den hund, har en variabel kalt "counter", så lenge som de er både lokale sprites, da deres virkeområde ikke strekker til resten av programmet. Og så ingen av de andre sprites eller stadiet vil bli forvirret. OK. Så jeg nevnte tidligere inngangspunkt da vi hadde når grønn flagget klikket blokk. Og så hva det er - det sier OK, når hendelsen skjer at den grønne flagget er klikket, dette er hva du bør gjøre. Og så det er faktisk ikke det eneste arrangementet som vi har i Scratch. Vi har også andre hendelser. Så vi har, for eksempel, når en tast på tastaturet trykkes. Og du kan faktisk velge bokstavene A til Z, 0 til 9 eller piltastene. Og så har vi også andre hendelser, for eksempel når sprite klikkes. Og så når du starter med det, merker du nøkkelen trend er at de bare har et spor på undersiden, og så så det, igjen, legger nøkler deg i at ingenting over blokken. Du bygger fra det og under. Nå sier, hva skjer hvis vi ønsker noen hendelse skal skje bare når jeg ikke vet, en katt berører en bestemt del av scenen eller noe sånt? Vi har faktisk ikke har noen innebygd i hendelse for å markere det. Så det vi må gjøre er faktisk lage vårt eget arrangement. Og det kalles kringkasting. Så når du ønsker å signalisere at en viss har skjedd, så du bruker - i kontrollen kategorien, er det en blokk kalt "Kringkaste". Og så da, vil du skrive inn navnet på den Dersom du ønsker å kringkaste, og deretter hvilken sprite eller sprites - du kan ha flere sprites reagerer på denne meldingen - eller scenen må håndtere det, vil måtte mottar det, vil ha å si, OK, jeg forstår at dette har skjedde, så jeg kommer til å gjøre dette med det. Og så når du sender en hendelse, er at med forståelse av at enten at sprite eller annen sprite er nødt til å motta denne hendelsen og svare. Nå den siste konseptet før vi kommer inn et faktisk eksempel av en Scratch programmet er tråder. Så tråder er når datamaskinen utfører samtidige prosesser samtidig. Jeg kan garantere deg at alle av oss har tatt nytte av trådene når vi vi ser en film på samme tid som skrive et essay eller noe sånt. Datamaskinen utfører flere ting samtidig tid, akkurat som Scratch kan. Så som du kan se i dette eksempelet, disse to skript kan brukes for nøyaktig samme sprite, fordi disse begynner Entry Point blokker kan faktisk brukes multipler av ganger. Jeg kan garantere deg at sannsynligvis den grønne flagg klikket blokk vil være en av de mest populære blokker i programmet. Så her ser vi at når det grønne flagget er klikket, det er en prosess som skjer, samt når den grønne flagget er klikket, det er en egen prosess som skjer. Og så Scratch vil kjøre disse to samtidig. Og så bruker disse trådene, og vite at du faktisk kan har mer enn én oppføring punkt - selv om det er det samme inngangspunktet - det kommer til å bli veldig nyttig hvis du ønsker å si, skille forskjellige oppgaver fra hverandre. OK. Så la oss faktisk se inn et eksempel på en Scratch program. OK. Så jeg har allerede gjort et lite program for oss her. Så jeg skal bare klikk på den grønne flagget for å starte og se hva den gjør. Så vi har en oransje fisk her - en fisk sprite - synes å bevege seg og deretter nullstille og gå tilbake. Og så har vi en hai sprite. Og dette hai sprite kan bevege seg, kan det rotere, kan det svømme rundt. OK. Så det er litt moro. Men vi kan definitivt legge mer til det. For eksempel ser vi at når haien er i bevegelse, kan det faktisk får av skjermen og nesten forsvinner ut av syne. Så vi ønsker å endre det, fordi vi ikke vil at hai å unnslippe. Og så la oss stanse vår manus og deretter redigere hai skript, kanskje legge til noe. Legg merke til at i dette bestemte sprite her, evig sløyfe ender med en rett kant. Det har ikke noen spor. Så faktisk dette er fornuftig, fordi det er en evig loop. Det utfører noe uendelig. Så det vil ikke ta slutt. Selv om det var noe under det, ville aldri komme til det. Så du er faktisk nødt til å innføre en tråd. OK. Så la oss legge til en annen script. Så jeg kommer til å starte med dette innlegget punktet når grønn flagg klikkes. Så det jeg ønsker å gjøre er å sjekke kontinuerlig om hai kommer til å berøre kanten. Men jeg vet det, faktisk, under Motion det er en ryddig liten blokk som sier, oh, hvis du er på kanten, sprett. Så det vi ønsker å gjøre er kontinuerlig utføre. Og så hva dette "hvis du er på kanten, bounce" gjør - det faktisk allerede sjekker om jeg er på kanten, deretter sprette tilbake. Så vi må finne en slags loop til kontinuerlig utføre denne uttalelsen. Så hvis vi ser under kontroll, har noen en idé om hva sløyfe vi kanskje vil bruke? Ja. STUDENT: Den evig loop. ZAMYLA CHAN: Akkurat, ja. Den evig loop. Så la oss spore det her, og så si, hvis du er på kanten, sprette. Og så la oss se. OK. Så fisken beveger seg som per vanlig. Og så, oh - Nå haien ikke kan unnslippe, og spretter ut av skjermen. Cool. OK. Så jeg var ute i. Jeg L ° vernes - Ja? STUDENT: Hvordan lager du som gjelder for hai når den beveger seg til fisk? ZAMYLA CHAN: Ah. Så grunnen hvorfor bare haien spretter, i motsetning til fisk også, fordi dette skriptet som vi skrev er inne haien sprite. Du skjønner, her oppe, er haien sprite valgt. OK. Så la oss legge til noe annet. Jeg var å utforske på de ulike kostymer som Scratch har, og jeg så denne søte lille hai-chomp. Så jeg tenkte at, hei, vel, kanskje vi kan implementere hai chomping, for eksempel når vi trykker plass. Jeg bare kommer til å stoppe dette. OK. Ja. STUDENT: Kan du bare vise - er at under Kostymer? ZAMYLA CHAN: Å, ja. Så jeg gikk under Kostymer, og da jeg så under import. Og så her har Scratch en hel rekke kostymer som du kan velge. Og så så er det en hel haug med dyr, og deretter hai har et par kostymer forbundet med det. OK. Så i dette skriptet her, jeg sjekker allerede kontinuerlig i evig loop, OK, vel, hvis venstre pil trykkes, så jeg vil rotere mot klokken. Hvis høyre pil trykkes, vil jeg rotere med klokken. Hvis pil opp trykkes, så jeg ønsker å gå videre fremover. Så hva vi kan gjøre er å legge bare til dette skriptet, i stedet for legge til en separat, fordi dette er allerede sjekker inn som tema taster blir trykket. Så la oss legge til en som sier at hvis mellomromstasten - la oss bruke mellomromstasten for å chomp ned. Så disse mot venstre pilen trykkes, et cetera, disse er i lysere blå. Så la oss gå til Sensing lysere blå, og ser ned. Oh, og her er en nøkkel plass trykket. Så det vi ønsker å gjøre er å ha haien bryteren til chomping ned kostyme. Som har å gjøre med hvordan haien ser, så vi går til utseende. Og her har vi, beleilig, bytte til kostyme hai-chomp. Men når vi chomp ned, ønsker vi ikke haien til å være chomping ned for alltid, så la oss legge til, OK, vel da, etter at det chomps, vi vil ha det å bytte tilbake. OK, så la oss se hva som gjør. Så vi har det å bevege seg rundt. OK. Så vi har det chomping. Det er chomping slags raskt skjønt, fordi i Scratch, det utfører dem umiddelbart. Så, la oss gå til kontroll og gjøre det setter sin chomp, vente ett sekund. Og her er det chomps ned litt lenger før det går tilbake til sult sin. OK. Så jeg er ganske fornøyd med hai nå. Men fisken, hva det ser ut til å være å gjøre - det er framdrift en par trinn, faktisk, fem ganger. Den beveger seg 50 trinn. Og hva det gjør her i denne toppblokk her er jeg sa OK, vel, det kommer til å gå til en bestemt verdi av x. For å finne koordinatene, kan du faktisk bare musen over skjermen, og deretter i bunnen - rett over her - det vil vise deg hva koordinatene er. Så du kan dra nytte av det å legge inn koordinater som du ønsker. Og så hva denne uttalelsen her sier sier, OK, vel, starter fisk på denne bestemte x-verdi og deretter høyde av det kan endre. Jeg er faktisk kommer til å plukke en tilfeldig høyde som fortsatt holder innenfor rammen av scenen. Og så her, hva jeg tar nytte av er kringkasting hendelser. Så du ser at dette hendelseshåndterer er ny fish1. Så når fisken får den nye fish1 hendelse, vil det utføre dette. Og så ser du at etter den beveger seg fremover sitt sett beløp ganger, så det sender faktisk igjen, OK, nye fish1. Men i stedet, hvor om la oss gjøre det slik at fisken bare fortsetter til slutten av skjermen før den tilbakestilles, i stedet for bare slags gå til sentrum av den. Så i stedet for å si, gjenta fem ganger - fordi vi ikke virkelig vet hvor mange ganger vil være nødvendig før det når slutten av skjermen, la oss bruke noe annet. Så jeg kommer til å skille ut dette, fordi vi egentlig ikke ønsker dette. Hvis du vil slette blokker i Scratch, hva du gjør er at du bare dra den til venstre, slipp, og så det blir slettet. Hvis du bestemmer deg for at du ikke ønsker å gjøre det, så kan du alltid angre slettingen. Men vi ønsker å bli kvitt dette. Hva vi ønsker å gjøre er vi ønsker å holde på å flytte 50 trinn og pause ett sekund til vi berører enden av skjermen. Så kan noen oppdage en løkke som vi kanskje vil bruke den gjentar en prosess akkurat før vi berører skjermen. STUDENT: Gjenta til. ZAMYLA CHAN: Jeg hørte "gjenta inntil", og det er riktig. Så ja, dette tar gjenta inntil blokken også et - men vi ser at dette gjentar til blokken er ikke helt komplett, ikke sant? Så vi trenger å si, OK, vel, gjenta inntil da? Så vi sier, OK, vel, gjenta til fisken berører kanten av skjermen. Og så skal jeg fortelle deg at det er under Sensing. Det er denne rørende Boolsk. Og så kan du velge her hva du ønsker å være sjekker at fisken er rørende. Så her ønsker vi å si berøre kanten. Og så ønsker vi å legge til denne tilbake igjen Og så nå, hvis vi ser vår fisk går, når den berører kant, vil den bevege seg tilbake igjen. OK. Så jeg er fornøyd med det. Og la oss åpne HungryShark1. OK, typen som en cooking show, jeg har lagt litt flere funksjoner. Så for eksempel, ser du at fisken nå er faktisk gli ganske greit, i motsetning til før, da det var slags flytting og stoppe, flytte og stoppe - egentlig bare hoppe sett piksler. Jeg så under Motion, fant dette gli uttalelse, og jeg sa OK, i stedet for bare å flytte og stoppe, flytting og stoppe, jeg kommer til å gli 70 enheter til høyre, men bo på min samme y posisjon her. OK. Så vi har en hai som kan chomp. Cool. Men det kalles HungryShark, tross alt, så la oss få hai spise fisk. Så hvordan kan vi fortelle fisken eller fortelle haien at den har chomped ned? Hvordan kan vi kommunisere? Ja. STUDENT: På den andre kostyme av hai, den fanger fisken. ZAMYLA CHAN: Ja, akkurat. Så vi vet at når vi bytter kostyme til chomp, at vi har chomp ned. Nå vil vi til slutt nødt til å sjekke. Si at vi ønsker fisken å forsvinne når den spises. Vi vil ha en eller annen måte kommunisere til fisken som det må skjule, for eksempel, eller forsvinne fra skjermen når den er blitt chomped ned på. Så hva slags konsept, hva slags verktøy vi kan bruke til å har haien kommunisere til fisken, OK, Jeg har chomped ned? STUDENT: Broadcasting. ZAMYLA CHAN: Ja, akkurat, kringkasting en hendelse. Så la oss gå til kontroll og la oss si sendingen. Og la oss sende chomp. OK. Men når vi sender noe, er at med antagelsen om at vi faktisk kommer til å ha noe motta den. Og så det kommer til å være fisk. Så la oss si, når jeg får chomp. Nå, når haien chomp ned bare en tom plass, gjør vi ikke ønsker fisken å reagere på i det hele tatt. Så la oss si, OK, vel, bare hvis haien berører fisk på tidspunktet for chomp - Det er da vi skal faktisk gjøre noe. Så da kommer vi til å bruke tilstanden hvis, høyre, fordi vi sjekker om noe er sant eller ikke. Så hvis vi går tilbake til Sensing, så kan vi bruke her, hvis rørende. Og så her, velger vi haien. Deretter under Looks, denne diskrete blokk - som vil i utgangspunktet gjøre fisken forsvinner fra scenen. Vi vil gjøre det skjule, men vi ønsker en annen fisk, ikke sant? Vår hai er sulten. Vi ønsker å gi det mer fisk. Så da la oss også kringkaste en ny fisk igjen. OK. Så la oss se hva som gjør. Cool. Så det chomps ned og en annen fisk vises. Men det er litt for rask for en annen fisk å gå. Så la oss bare vente et sekund før vi kringkaste en ny fisk. OK. OK. Så dette er en ganske god inngåelse av et spill. Men alle spillene trenger en score, ikke sant? Så hva kan vi bruke til å holde score? Ja. STUDENT: Annet - ZAMYLA CHAN: Yeah. Akkurat. Ja. Så vi ønsker å holde styr på i utgangspunktet hvordan mange fisk det er spist. For å gjøre det, må vi gjøre en variabel. La oss kalle det score. Og så antagelig, siden dette er et spill som vi spiller, Vi kommer til å ønske at fisken kunne - si, når det spises det kan øke poengsummen eller noe og deretter scenen vil trolig måtte gjøre noe med sår også. Så jeg kommer til å velge å gjøre dette til en global variabel og si for alle sprites. OK. Så når vi ønsker å øke poengsummen? Når en fisk har blitt spist. Og så har vi allerede en prosess her som er å håndtere med fisken blir spist. Så la oss legge denne uttalelsen her - endre Resultat av 1. Cool. Så når du spiser en fisk, poengsummen øker. OK. Så sier jeg lei av dette spillet. Jeg stoppe. Og så, oh, jeg ønsker å komme tilbake til spillet. Jeg ønsker å starte et nytt spill. Vel, poengsummen fortsatt 3, selv om jeg er spille et nytt spill. Vi vet egentlig ikke ønsker å score aldri å nullstille, ikke sant? Så la oss legge en uttalelse når spillet startet i scenen for å si, OK, vel, vi ønsker å nullstille score. Så her har vi satt variabelen poengsummen til 0. Og så nå, når du starter et spill, poengsummen vil starte på 0. Cool. OK. OK. Så nå, la oss gå videre til HungryShark2. Så jeg har gjort litt mer nå, og det jeg har gjort er høyre klikket på fisken sprite. Jeg ønsket mer fisk, og så jeg klikket duplikat, og det gjorde nytt sprite identisk med den som en, og også kopieres i alle skript også. Så da denne fish2 er i hovedsak identisk med fish1, bortsett fra i stedet for å starte på den venstre og flytte rett, den starter på høyre og trekk igjen. Og da jeg valgte også en ny drakt for det. Så jeg fant en annen drakt som var en flekket fisk, og jeg var som kult, dette ser giftig, så la oss late at dette er en giftig fisk. Og så sa jeg, OK, vel, i stedet for å spise giftig fisk og ha poengsummen din øker, jeg faktisk vil den skal avta. Så her har vi poengsum reduseres med 1 når hai spiser det. Og så, jeg likte kostymer som scratch gitt, og jeg så, og da jeg fant shark's - det så ut som en syk hai. Og så så jeg redigerte den jeg gjorde det grønne. Og jeg var som kult, det er en syk hai. OK. Så la la oss legge til skriptet en slags måte å gjøre det hai bryter til å bli syk når det spiser en forgiftet fisk. OK. Så fordi vi kopierte alle skript fra vår opprinnelige fisken i giften fisk, har det allerede denne sprite her som sier, når jeg chomped ned, er jeg faktisk chomped ned? Så vi kan dra nytte av dette for å kommunisere til hai, oh, vel, du nettopp spiste en gift fisk. Du er syk. Og så dette ville være hva slags handling? Hva ville være ønsker å gjøre? Kringkastes. Ja, akkurat. Så la oss sendingen. La oss kalle det hai syk. OK. Så nå, haien, selvsagt, skal være den som er mottar denne hendelsen. Så la oss legge til når jeg får haien være syk. OK. Så vi vet vi har denne drakten - haien er syk. Og så vet vi fra før at vi på en måte setter når vi kan stoppe litt før du bytter tilbake. Ja? STUDENT: Hvordan kopierer du skript fra en sprite til en annen? ZAMYLA CHAN: Ah. Så i dette tilfellet, når jeg bare kopierte den sprite, til kopiere ett skript til en annen sprite, hva jeg gjorde her var bare si duplikat, og det faktisk gjort en hel ny sprite med alle skript inkludert. Men si at du ønsker å bare kopiere en viss skript til et annet sprite, så hva du ville gjøre er faktisk bare dra dette, sveve over en annen script, og nå her det dupliseres det. I dette tilfellet, den allerede hadde det, så vi kan bare slette det igjen. Men for å kopiere ett skript til et annet, hva du gjør er bare dra det til de andre sprites. OK. Så vi er tilbake på hai være syk. Så det er mottatt hai er syk, og det sier, OK, vel, når jeg er syk, jeg kommer til å bytte til kostymet mitt som sier "Hai syk", og nå, la oss bare legge en vente til verdsette den grønne. Og så skal vi være sulten igjen, så vi kan bare bytte tilbake til hai blir sulten. OK. Så la oss spise denne lilla fisk. Det er fint. Godt spørsmål. Hva har skjedd med disken? OK. Så vi har satt score til 0 her, men dette score - hva Dette merket betyr det skjuler eller unhides variabelen fra skjermen. Men hva vi kan gjøre i stedet for fjerne merket eller sjekke det - Vi kan faktisk ha denne blokken her sier "vise eller skjule variabelen. "Så la oss sørge for at hver gang vi starter spillet at variabelen er vist. OK. Så nå variabelen er vist. Vi spiser en gift fisk, og vi får syk. Cool. OK. Så nå er det rart for et spill for oss å ha negative poeng, ikke sant? Så det holder på å spise disse og det er som - så hva når vi får negative, hvis vi har spist for mange giftig fisk, game over - hai er for syk. OK. Så det vi må gjøre er vi må kringkaste noen hendelse - game over. Slik at vi kunne gjøre dette på mange måter, faktisk. Vi kunne ha et sted i scenen et script som kontinuerlig sjekker poengsummen negative? Er poengsummen negative? Hvis ja, så vi kringkaste denne hendelsen. Så det er én måte å gjøre det. Eller vi kunne dra nytte av det faktum at vi vet at eneste måten at poengsummen din kan være negativt er når du spiser en giftig fisk, ikke sant? Fordi når du spiser annen fisk, din Resultat kommer til å øke. Så det er ingen bruk i å sjekke om det skal være game over eller ikke. Så dette er en lignende prosess her. Så vi kan faktisk bare legge til dette "når jeg mottar hai syk. " Så sier vi legge denne tilstanden. Vi ønsker å si, hvis poengsummen er mindre enn 0. Så vi kommer til å gå til Operatører, vi kommer til å bruke dette mindre enn én, vi kommer til å dra vår score her, sier 0. Og så, hvis poengsummen er 0, så vi ønsker å kringkaste noe som kalles game over. OK. Så sier vi har game over. La oss flytte den her eller noe. Vel, vi ønsker haien bare å gå tilbake til å være sulten hvis spillet kan fortsatt bli spilt. Så i stedet for å bruke en "hvis" vi vil bruke en "if else" konstruere. Så hva dette betyr - det sier, OK, så hvis denne tilstanden er sant, så gjør dette, men hvis det er falsk så gjør dette. Så la oss legge om poengsummen er mindre enn 0, så du kringkaste game over, men hvis ikke - hvis score er fortsatt positiv - deretter gå tilbake til å være sulten. OK. Cool. Så nå som vi har denne game over hendelsen, vil vi ha noen måte å reagere på det. Så la oss gjøre et nytt manus som sier "når jeg mottar spillet over. "Og hva har vi her under kontroll er faktisk dette stoppe all knappen, og så det i utgangspunktet etterligner deg klikke det røde stoppskiltet her. Så la oss ta haien stopp. Og så ønsker vi også fisken å stoppe, så la oss dra og kopiere den i. Vi ønsker all fisken til å stoppe. Og så la oss få scenen stopp også. OK. Så svømmer rundt, spiser vi en fisk, og så programmet fryser. Jeg klikke ned, men jeg kan faktisk ikke gjøre noe. OK, men la oss si at vi ikke ønsker å minne brukeren om at de har en negativ verdi, for eksempel, så kan vi, for eksempel skjule variabelen fra skjermen. Så når scenen får game over, så vil det skjule variabelen score. OK. Så la oss spise en mer fisk. Og så scorer forsvinner, og du trenger bare denne skjermen. OK. Så det er en ganske anstendig spill, og hvis du hadde mer tid, så du kunne til slutt legge flere og flere skript. Og så da, jeg har lagt noen flere fisk, gjort dem videre ved ulike hastigheter, og deretter når haien spiser giftig fisk, sier det faktisk, "Blech!" Og så hva jeg gjorde er jeg lagt til en ny bakgrunn til scenen - et spill over bakgrunnen. Og så hva scenen gjør i spillet over hendelsen håndtering er den bytter til bakgrunnen av game over bakgrunn. Og i tillegg, gjemte jeg alle sprites fra scenen, slik at bare spillet over bakgrunnen ble vist. Det er et par andre små filer som jeg har lagt, for eksempel, før når vi endte vårt program, så vår hai, neste gang vi startet, ville starte opp i den posisjonen samt. Hva jeg lagt er når det grønne flagget er klikket, så haien går tilbake til opprinnelsen og deretter vender mot høyre, slik at hver gang, har du en hai starter der. Så du kan eksperimentere in Motion og ting som at bare for å legge små tingene som gjør spillet litt mer polert. Har noen spørsmål om HungryShark? Cool. OK. Så det er et eksempel på noe som du kan gjøre i Scratch bruker alle verktøyene som vi diskuterte tidligere. Så jeg også inkludert i walkthrough lysbilder. Du vil se dem senere. Det er bare en oversikt over de prosesser som vi gjorde - framdrift fra HungryShark0 hele veien til vårt endelige. En Ja. Men det er om det. Jeg skal bo bak hvis dere ønsker å spør noen flere spørsmål. Dette var Walkthrough 0. Takke dere alle for å komme, og jeg vil se deg på Walkthrough en.