[Powered by Google Translate] ZAMYLA CHAN: Okej. Hej, alla, och välkomna till Walkthrough 0. Mitt namn är Zamyla, och jag kommer att leda dessa genomgångar i år. Under CS50 är alla problem set tillsammans med en genomgång där vi ska gå igenom veckans problemet set, prata igenom, prata hur du kommer igång, diskutera olika tekniker och tips för att verkligen bryta problemet satt i några hanterbara biter. Jag är också väldigt glad att besvara alla frågor som du har på problemet set. Utan vidare, jag är glad att du är här, oavsett om du är Här personligen eller trimning på nätet. Låt oss komma igång. Så den första p-uppsättning i CS50 - faktiskt, vi kommer inte att komma in skriva och maskin kod grejer riktigt än. Vi har faktiskt kommer att använda Scratch, som är ett program som tillåter oss att göra några drag och släpp programmering. Och så även om vi inte skriver, gör det verkligen för oss att utforska några av de grundläggande begrepp som Vi kommer att använda alla i hela CS50. Nu, några av dessa begrepp är listade här i verktygslådan. Vad jag skulle vilja göra för varje genomgång är presentera alla med en uppsättning verktyg som du kan använda för genomgång. Och så, oroa dig inte. Vi ska gå igenom alla dessa villkor och alla dessa teorier under genomgången. Nu, om du slutar använda alla dessa verktyg, eller bara några av dem, det är verkligen bra att veta vad du har med att kunna ta itu med problemet set. Så i Scratch, är det första jargong som du måste veta vad en sprite är. Så varje föremål eller varje tecken, oavsett om det är en katt en hund eller en boll, kallas en sprite. Och så, om jag vill, säger två katter - oavsett om de är identiska - Jag måste göra två separata sprites i Scratch. Och så sprites har manus associerade med dem. Skript är faktiskt vad du kommer att bli byggnad - dra och släppa - med dina block. Och så vad skript gör är typ av bestämma och definiera hur spriten fungerar. Sprites är faktiskt inte bara bilder, eftersom vi har dräkter också förknippade med sprites denna typ av avgöra vad spriten ser ut. Och du kan ha mer än en kostym för en given sprite. Så någon gång under din Scratch programmet, som vi ska visa senare i dag under genomgång, kan du faktiskt ändra kostym på din sprite så att det ser antingen något annorlunda eller helt annorlunda. Och så finns det tre sätt att skapa en sprite i Scratch. En, kan du rita din egen i Scratch s byggt i färg redaktör. Du kan ladda upp din egen bild, använd en av Scratch: s inbyggda sådana, eller det sista alternativet, få ett slumpmässigt sprite. Nu, om du känner dig särskilt lycklig, då jag Välkommen att prova lyckan och skapar en slumpmässig sprite. Så alla sprites placeras på scenen i Scratch. Scenen - vi kan behandla det som vår duk. Och så alla sprites placeras på scenen. Och detta skede vad det gör tillåter alla sprites att röra sig på det. Och precis som sprites, har scenen också skript. Och så dessa skript, för att placera dem på scenen - det är verkligen bra när, säg, har du ett manus som inte exakt avser en specifik sprite, utan avser flera sprites eller bara i allmänhet, något som du vill göra. Så du kan placera dessa skript på scenen i stället, och att skulle vara något bättre design. Nu, när du kan ha flera sprites, det är bra att Tänk på att du bara kan ha ett steg. Men steg har också bakgrunder. I motsats till kostymer, som sprites gör, steg har bakgrund. Och igen, kan du rita antingen din egen eller ladda upp din egen bild som ska användas som bakgrund. Så har någon några frågor innan vi går vidare? OK. Känn dig fri att avbryta mig vad under genomgång och Jag är glad att besvara alla frågor du har. OK. Så när du startar din sprite programmet, vad du ska göra är att du kommer att klicka på den gröna flaggan. Men om du inte ansluter något till detta block rätt Här sedan ingenting är faktiskt kommer att hända. Jo, ser du, vad manus och scenen behöver göra är faktiskt vet att svara på händelsen - Det är vad vi kallar dem, evenemang - den gröna flaggan som klickade. Så du måste verkligen fästa block till spåret vid botten av den gröna klickade flaggan blocket, och sedan Programmet kommer att veta vad man ska göra och hur man ska bemöta de gröna flaggan som klickade. Nå, vad kommer sedan? Tja, vi har en uppsjö av block i grunden för att använda, och var köttet, verkligen, av ditt program ligger i dessa uttalanden. Och så dessa uttalanden är bekvämt organiseras av färg. Du har åtgärder relaterade till rörelsen, ljud, utseende, et cetera. Och så att du kan se kan du navigera mellan dem i flikar i din Scratch program. Och så, medan du har andra saker byggda runt det, vad de uttalanden faktiskt faktiskt berättar sprites eller på scenen för att göra något. Och inte bara säga, OK, när du gör detta, rapporterna innehåller faktiskt den verkliga kött av det. Låt oss säga att du vill bara köra en viss åtgärd, säger du bara katten att jama när en viss sak händer. Vi kan dra nytta av Booleans som du lärt dig i föreläsning ett. Och så dessa är uttryck som utvärderas till antingen sant eller falskt. Och så dessa identifieras i Scratch av - ser vinklarna vid slutet av dessa block. Och så har du en mängd olika typer av Booleans. Du har "är den mest pressas ned," "gör 2 plus 2 likställa till 5, "eller" användaren trycka ner en viss tangent på tangentbordet? " Nu kan du inte bara använda dessa ensam. Vad du behöver göra är att kombinera dem med ett villkor. Så villkoret är där under kontroll fliken i Scratch. Och så har de lämpligen en liten platshållare som visar formen på det block som du behöver för att sätta i det. Så beroende på sammanhanget av situationen, kan du välja en boolesk och sedan placera den i ditt tillstånd. Och där har du en villkorlig uttalande. Om du lägger uttalanden inne som blockerar, så har du en struktur som inrättats, där en gång ett visst villkor är uppfyllt på vänster, kör du sedan uttalandet. Ja? STUDENT: Om en variabel representerar ett nummer kan du använda variabeln inuti Boolean, som den gröna, till exempel? ZAMYLA CHAN: Ja, du kan. Du kan dra och släppa variabelvärdet inuti cirkulär form där. Nu är en av fördelarna med datorer stora kraften och hastighet med vilken de kan utföra repetitiva processer. Och så, i stället för, säg, upprepa en instruktion över och om och om igen och faktiskt skriva ut det - eller i detta fall i Scratch, dra och släppa och dra och släppa - vad vi kan göra är att kapsla in det i en slinga. Och så, kan slingor användas för att antingen utföra saker oändligt med evigt slinga, eller för en visst antal gånger - säger, upprepa "Säg hej" 10 gånger eller tills ett visst villkor är sant. Och så igen, ser du att grunden är antyder att när du har ett tillstånd som "repeat tills" då det enda sak som passar inuti finns ett booleskt värde. Okej. Så nu vet vi att vi kan kapsla repetitiva processer inuti slingor. Du kan se varför något sådant inte skulle vara perfekt. Det passar inte på bilden. I huvudsak, det gör det precis samma sak om och om igen 10 gånger, faktiskt. Det rör sig 10 steg, säger hej, flyttar 10 steg, säger hej. Så nu kan du se att när vi har öglor, något som Detta är mycket bättre. Det är kortare, det mindre, och det faktiskt slutför samma sak. Nu i Scratch inte kan göra mycket av en skillnad, men det sparar faktiskt dig lite tid. Så på den rörliga uttrycket - Du kan faktiskt använda variabler och sätta dem inne i förhållanden. Som uttrycks där, ser du att vi har en variabel som heter "Motverka", och vi likställa att se om det är mindre än 0. Så variabler huvudsak skulle jag säga, behållare för värden. I Scratch kan dessa typer av värden vara antingen ord eller de kan vara tal. Och så, med dessa variabler, vad vi kan göra med dem är att vi kan ställa sitt värde. Så i det första exemplet här har vi ett exempel på text innehåller värdet "Hello, World!" I det andra exemplet, det förutsätts att vi redan har en variabel som heter "Motverka", och i så fall, vi ändrar det med 3. Vi uppräkning genom 3. Och sedan i det sista exemplet, kan variablerna dras sättas i ett booleskt uttryck. Nu, när du skapar en variabel, vad du har att avgöra är om du gör variabel för alla sprites i ditt Scratch program eller för bara detaljer sprite där du har valt när du gör variabeln. Och så detta är ett mycket viktigt beslut att fatta. Och det kommer verkligen ner till vilket utrymme du vill variabel ha. Så till exempel, skulle ett exempel på lokal omfattning vara om du Välj bara för denna sprite att variabeln. Så det skulle betyda att endast den sprite skulle kunna komma åt den variabeln. Bara att sprite skulle kunna se det, ändra det, ändra det. Om du väljer att ha en global räckvidd - så det är om man säger till alla sprites, om du väljer detta alternativ - då innebär det att scenen liksom alla sprites kommer att kunna se, ändra och komma åt den variabeln som du har skapat. Eventuella frågor hittills på variabler eller något? Ja. STUDENTEN för variablerna, kan du ha två variabler samma namn om de är på olika sprites? ZAMYLA CHAN: Så länge de är lokala sprites --- Ah, ja, förlåt. Så frågan var om du kan ha två variabler samma namn i ett program och om du har två variabler med samma namn men är både lokala sprites, så sprite en, katten har ett variabelnamn "räknare" och sprite två, hund, har en variabel med namnet "disk", så länge som de är såväl lokala sprites, då deras räckvidd inte omfattar resten av programmet. Och så att ingen av de andra sprites eller steg kommer att bli förvirrad. Okej. Så jag nämnde tidigare ingångspunkten när vi hade när grön flaggade klickade blocket. Och så vad det är - det säger, OK, när händelsen inträffar att den gröna flaggan är klickade, det är vad du ska göra. Och så är faktiskt inte den enda händelsen som vi har i Scratch. Vi har även andra evenemang. Så vi har, till exempel, när en tangent på tangentbordet trycks ned. Och du kan faktiskt välja bokstäverna A till Z, 0 till 9, eller piltangenterna. Och så har vi även andra händelser, som när sprite klickas. Och så när du börjar med det, märker du den viktigaste trenden är att de bara har ett spår på botten, och så då återigen fäster tangenter dig i att ingenting ovan detta block. Du bygger från och nedan. Nu, säg, vad händer om vi vill ha lite händelse att hända bara när jag inte vet, en katt vidrör en viss del av scenen eller något liknande? Vi har faktiskt inte har någon inbyggd händelse att beteckna det. Så vad vi måste göra är att faktiskt skapa vår egen händelse. Och det kallas sändningar. Så när du vill signalera att en viss har hänt, då du använder - i kontrollgruppen fliken finns ett block som kallas "Sänds." Och så då kommer du skriva in namnet på den Om du vill sända, och sedan beroende Sprite eller sprites - Du kan ha flera sprites reagerar på detta meddelande - eller scenen måste hantera det, måste emot den, måste säga, OK, jag förstår att detta har hände, så jag ska göra med det. Och så när du sänder ett evenemang, det är med förutsättning att vardera att sprite eller annan sprite är kommer att behöva ta emot denna händelse och svara. Nu, den sista konceptet innan vi får till en verklig exempel av ett Scratch program är gängor. Så trådar är när datorn körs samtidiga processer samtidigt. Jag garanterar er att vi alla har dragit nytta av trådar när vi vi titta på en film samtidigt som skriva en uppsats eller något liknande. Datorn utför flera saker samtidigt tid, precis som Scratch kan. Som du kan se i det här exemplet, dessa två skript kan användas för exakt samma spriten, eftersom dessa början block Entry Point kan faktiskt används multiplar gånger. Jag garanterar er att förmodligen den gröna flaggan klickade blocket kommer att vara en av de mest populära block i ditt program. Så här ser vi att när den gröna flaggan klickas, det finns en process som pågår, liksom när den gröna flaggan är klickade, det finns en separat process pågår. Och så Scratch körs dessa två samtidigt. Och så använder dessa trådar, att veta att du faktiskt kan har mer än en ingång - även om det är samma ingång - det kommer att bli riktigt bra om du vill, säg, separera olika uppgifter från varandra. Okej. Så låt oss faktiskt undersöka ett exempel på ett Scratch-program. OK. Så jag har redan gjort ett litet program för oss här. Så jag ska bara klicka på den gröna flaggan för att starta och se vad den gör. Så vi har en orange fisk här - en fisk sprite - verkar röra sig och sedan återställa och gå tillbaka. Och sedan har vi en haj sprite. Och detta haj sprite kan flytta, det kan rotera, kan det simma runt. OK. Så det är ganska kul. Men vi kan definitivt lägga mer till det. Till exempel ser vi att när hajen rör sig, det kan faktiskt få av skärmen och nästan försvinner ur sikte. Så vi vill ändra på det, eftersom vi inte vill att haj att fly. Och så låt oss sluta vårt skript och sedan redigera haj skript, kanske lägga till något. Notera att i detta speciella sprite här, evigt slingan slutar med en rak kant. Det har inte någon skåra. Så i själva verket är vettigt, eftersom det är en evighet slinga. Det utför något oändligt. Så det kommer aldrig sluta. Även om det var något under det, skulle aldrig få till det. Så du faktiskt tvungen att införa en tråd. Okej. Så låt oss lägga till ytterligare skript. Så jag ska börja med denna ingång om när grön flagga klickas. Så vad jag vill göra är att kontrollera fortlöpande om haj kommer att röra kanten. Men jag vet att, faktiskt, enligt Motion finns en snygg liten block som säger, åh, om på kanten, studsa. Så vad vi vill göra är att ständigt köra. Och så vad detta "om på kanten, studsa" gör - det faktiskt redan kontrollerar om jag är på kanten, sedan studsa tillbaka. Så vi måste hitta någon form av ögla att kontinuerligt utföra detta uttalande. Så om vi ser under kontroll, har någon en idé om vilken slinga vi kanske vill använda? Ja. STUDENTEN Den evigt slinga. ZAMYLA CHAN: Exakt, ja. Den evigt slinga. Så låt oss reda att här, och sedan säga, om på kanten, studsa. Och sedan ska vi se. Okej. Så fisken rör sig som vanligt. Och sedan, åh - nu hajen inte kan fly och studsar på skärmen. Cool. Okej. Så jag letade i. Jag Värre - ja? Elev: Hur gör man som gäller för hajen när den rör sig till fisken? ZAMYLA CHAN: Ah. Så anledningen endast haj studsar, i motsats till fisk också, eftersom det skript som vi skrev är inne haj spriten. Du förstår, här uppe är haj sprite valt. Okej. Så låt oss lägga till något annat. Jag utforskar de olika kostymer som Scratch har, och jag såg detta söta lilla haj-Chomp. Så jag tänkte att, hey, ja, kanske vi kan genomföra haj chomping, till exempel när vi trycker på utrymme. Jag ska bara stoppa detta. Okej. Ja. STUDENTEN Kan du bara visa - är att under Kostymer? ZAMYLA CHAN: Åh, ja. Så jag gick under Kostymer, och sedan jag tittade under Importera. Och så här, Scratch har en hel rad kostymer som du kan välja. Och så då finns det en hel massa djur, och sedan haj har ett par kostymer i samband med det. OK. Så i det här skriptet här, jag kolla redan kontinuerligt i evigt slingan, OK, ja, om vänsterpilen trycks då jag vill rotera moturs. Om högerpilen trycks, jag vill rotera medurs. Om uppåtpilen trycks då jag vill gå vidare framåt. Så vad vi kan göra är att lägga till bara skriptet istället för lägga en separat, eftersom det redan checkar in vars tema knappar trycks. Så låt oss lägga till en som säger om mellanslagstangenten - låt oss använda utrymme för att Chomp ner. Så dessa åt vänster pil trycks et cetera, dessa är i den ljusare blå. Så låt oss gå till Sensing ljusare blå och titta ner. Åh, och här är en viktig plats ned. Så vad vi vill göra är att få haj övergången till den chomping ner kostym. Det har att göra med hur hajen ser, så vi går till utseende. Och här har vi, bekvämt, växla till kostym haj-Chomp. Men när vi Chomp ner, vi vill inte haj som chomping ner för alltid, så låt oss lägga till, OK, ja då efter det chomps vill vi att växla tillbaka. OK, så låt oss se vad det gör. Så vi har det flyttar runt. OK. Så vi har det chomping. Det är chomping typ av snabbt men eftersom i Scratch, det utför dem omedelbart. Alltså, låt oss gå att kontrollera och göra det uppskattar sin Chomp, vänta en sekund. Och här chomps ner lite längre tid innan det går tillbaka till sin hunger. OK. Så jag är ganska nöjd med hajen nu. Men fisken, vad det verkar göra - det är framåt en par av steg, i själva verket, fem gånger. Det rör sig 50 steg. Och vad det gör här i topp blocket här är jag sade OK, ja, det kommer att gå till ett visst värde på x. För att hitta koordinaterna kan du egentligen bara musen över skärmen, och sedan i botten - här borta - Det ska visa dig vad koordinaterna är. Så du kan dra nytta av detta för att mata in koordinaterna som du vill. Och så vad detta uttalande här säger säger, OK, väl börjar fisken vid detta visst x-värde och sedan höjden av den kan förändras. Jag faktiskt kommer att välja en slumpmässig höjd som fortfarande håller inom ramarna för scenen. Och så här, vad jag utnyttjar är sändning händelser. Så du ser att den här händelsehanteraren är ny fish1. Så när fisken får nya fish1 händelsen, det ska utföra detta. Och då ser man att efter den rör fram sin fastställt belopp gånger, så sänder faktiskt igen, OK, ny fish1. Men istället, vad sägs om vi gör det så att fisken endast fortsätter till slutet av skärmen innan återställs, istället för att bara typ att gå till centrum av den. Så istället för att säga, upprepa fem gånger - eftersom vi inte verkligen vet hur många gånger kommer att behövas förrän det når slutet av skärmen, låt oss använda något annat. Så jag ska skilja ut det här, eftersom vi egentligen inte vill det. För att ta bort block i Scratch, vad du gör är du bara dra den till vänster, släpp, och sedan tas bort helt. Om du bestämmer dig för att du inte vill göra det, så kan du alltid återställa det. Men vi vill bli av med denna. Vad vi vill göra är att vi vill hålla på att flytta 50 steg och paus en sekund tills vi rör vid slutet av skärmen. Så kan någon upptäcka en slinga som vi kanske vill använda det upprepar en process bara tills vi peka på skärmen. STUDENTEN Upprepa tills. ZAMYLA CHAN: Jag hörde "upprepa tills" och det är korrekt. Så ja, tar denna upprepa tills blocket också - men vi ser att detta upprepas tills blocket är inte riktigt komplett, eller hur? Så vi måste säga, OK, bra, upprepa tills när? Så vi säger OK, bra, upprepa tills fisken vidrör kanten av skärmen. Och så ska jag tala om för er att det är under avkänning. Det är denna röra Boolean. Och så kan du välja här vad du vill att checka att fisken är rörande. Så här vill vi säga att vidröra kanten. Och då vill vi lägga till den här igen Och så nu, om vi tittar på vår fisk gå när den vidrör kant, det ska gå tillbaka igen. Okej. Så jag är nöjd med det. Och låt oss öppet HungryShark1. OK, ungefär som ett matlagningsprogram, tillade jag lite fler funktioner. Så till exempel, ser du att fisken nu faktiskt glida ganska smidigt, till skillnad från tidigare, när det var typ av rörelse och stoppa, flytta och stoppa - huvudsak bara hoppa set pixlar. Jag tittade under Motion, tyckte att det här glida uttalande, och jag sade OK, istället för att bara flytta och stoppa, flytta och stopp, jag ska glida 70 enheter till höger, men bo på min samma y-position här. Okej. Så vi har en haj som kan Chomp. Cool. Men det kallas HungryShark, trots allt, så låt oss ha haj äter fisken. Så hur kan vi tala om fisken eller berätta hajen att den har chomped ner? Hur kan vi kommunicera? Ja. STUDENTEN På andra kostym av hajen, den fångar fisken. ZAMYLA CHAN: Ja, exakt. Så vi vet att när vi byter kostym till Chomp, att vi har Chomp ner. Nu kommer vi till slut att kontrollera. Säg att vi vill att fisken ska försvinna när den äts. Vi måste på något sätt meddela fisk som Det får dölja, till exempel, eller försvinner från skärmen när det har chomped ner på. Så vilken typ av koncept, vilken typ av verktyg kan vi använda för att har haj meddela till fisk, OK, Jag har chomped ner? STUDENTEN Broadcasting. ZAMYLA CHAN: Ja, exakt, sänder en händelse. Så låt oss gå att kontrollera och låt oss säga sändning. Och låt oss sända Chomp. Okej. Men när vi sänder något, det är med antagandet att vi faktiskt kommer att ha något emot det. Och så det kommer att bli fisken. Så låt oss säga, när jag får chomp. Nu när hajen chomp ner bara ett tomt utrymme, gör vi inte vill fisken att reagera på det alls. Så låt oss säga, OK, ja, endast om hajen vidrör fisk vid tidpunkten för Chomp - det är då vi ska faktiskt göra något. Så då ska vi använda villkoret om rättighet, eftersom vi kontrollera om något är sant eller inte. Så om vi går tillbaka till Sensing, då kan vi använder här, om beröring. Och sedan här, vi väljer hajen. Sedan under utseende, detta dölj block - som i princip kommer att göra fisken försvinner från scenen. Vi ska göra det gömmer, men vi vill en annan fisk, eller hur? Vår haj är hungrig. Vi vill ge den mer fisk. Så låt oss också sända en ny fisk igen. OK. Så låt oss se vad det gör. Cool. Så det chomps ned och annan fisk visas. Men det är lite för snabb för en annan fisk att gå. Så låt oss bara vänta en sekund innan vi sända en ny fisk. Okej. OK. Så detta är en ganska bra skapandet av ett spel. Men alla spel behöver en poäng, eller hur? Så vad kan vi använda för att hålla poäng? Ja. STUDENT: Övrigt - ZAMYLA CHAN: Ja. Exakt. Ja. Så vi vill hålla reda på i princip hur många fiskar det äts. För att göra det, vi måste göra en variabel. Låt oss kalla den punkten. Och så förmodligen, eftersom detta är ett spel som vi spelar, vi kommer att vilja fisken ska kunna - säga när dess ätit det kan öka poängen eller något och sedan scenen kommer antagligen behöva göra något med öm också. Så jag kommer att välja att göra detta till en global variabel och säga för alla sprites. OK. Så när vi vill öka poängen? När en fisk har ätit. Och så har vi redan en process här som är att göra med fisken äts. Så låt oss lägga detta uttalande här - ändra Betyg från 1. Cool. Så när du äter en fisk, de poäng ökar. Okej. Så säger jag är trött på det här spelet. Jag slutar. Och sedan, åh, jag vill komma tillbaka till spelet. Jag vill starta ett nytt spel. Tja, är poängen fortfarande 3, trots att jag är spela ett nytt spel. Vi vill egentligen inte göra mål aldrig att återställa, eller hur? Så låt oss lägga ett uttalande när spelet startas i skede för att säga OK, ja, vi vill återställa poäng. Så här har vi satt variabeln poäng till 0. Och så nu, när du startar ett spel, resultatet börjar på 0. Cool. OK. OK. Så nu, låt oss gå vidare till HungryShark2. Så jag har gjort lite mer nu, och vad jag har gjort är höger klickade på fisken spriten. Jag ville ha mer fisk, så jag klickade duplikat och det gjorde en ny sprite identisk med den en och kopierade också i alla skript också. Så då denna fish2 är i huvudsak identiskt med fish1, utom i stället för start till vänster och går rätt, börjar det till höger och vänster drag. Och då valde jag också en ny kostym för det. Sen hittade jag en annan kostym som var en fläckig fisk, och jag var, kyler, det här ser giftiga, så låt oss låtsas att detta är en giftig fisk. Och så sa jag, OK, ja, i stället för att äta Giftiga fiskar och med din poäng ökar, jag faktiskt vill att den ska minska. Så här har vi poäng minskade med 1 när haj äter det. Och sedan, jag gillade de kostymer som repar tillhandahålls, och jag såg och då fann jag shark's - det såg ut som en sjuk haj. Och så då jag redigerade det jag gjorde det gröna. Och jag var som, coolt, det är en sjuk haj. Okej. Så låt låt oss lägga till vår skript någon form av sätt att göra haj brytare till att vara sjuk när det äter en förgiftad fisk. OK. Så eftersom vi kopierade alla skript från vår ursprungliga fisk i giftet fisk, har det redan här spriten här som säger, när jag chomped ner, jag faktiskt chomped ner? Så vi kan dra nytta av detta för att meddela haj, oh, ja, åt du bara en gift fisk. Du är sjuk. Och så detta skulle vara vilken typ av åtgärder? Vad skulle vara vilja göra? Sänd. Ja, exakt. Så låt oss sändning. Låt oss kalla det haj sjuk. OK. Så nu, hajen, självklart kommer att vara den som är får denna händelse. Så låt oss lägga till när jag får hajen är sjuk. OK. Så vi vet att vi har denna dräkt - hajen är sjuk. Och vi vet från tidigare att vi typ av uppskattar när vi kan pausa lite innan du växlar tillbaka. Ja? STUDENT: Hur du kopierar skript från en sprite till en annan? ZAMYLA CHAN: Ah. Så i detta fall när jag bara dupliceras Sprite, till kopiera ett skript till en annan sprite, vad jag gjorde här var bara säga två exemplar och det faktiskt gjort en helt ny sprite med alla skript ingår. Men säger du bara vill kopiera en viss skript till en annan sprite, vad du skulle göra är faktiskt bara dra detta, muspekaren över ett annat skript, och nu här är det dupliceras det. I detta fall är det redan hade det, så vi bara kan ta bort det igen. Men att kopiera en manus till en annan, vad du gör är bara dra den till de andra sprites. OK. Så vi är tillbaka på hajen är sjuk. Så det är emot haj är sjuk, och det säger, OK, ja, när jag är sjuk, jag kommer att byta till min dräkt som säger "Haj sjuk", och nu ska vi bara lägga en väntan att uppskattar det gröna. Och då kommer vi att vara hungrig igen, så vi kan bara växla tillbaka till hajen vara hungrig. Okej. Så låt oss äta denna lila fisk. Det är bra. Bra fråga. Vad hände med disken? OK. Så vi har satt poäng till 0 här, men denna poäng - vad denna markering inte är det döljer eller unhides variabeln från skärmen. Men vad vi kan göra i stället för att avmarkera eller kontrollera det - Vi kan faktiskt ha detta block här säger "visa eller dölja variabeln. "Så låt oss se till att varje gång vi startar spelet att variabeln visas. OK. Så nu variabeln visas. Vi äter en gift fisk, och vi blir sjuka. Cool. Okej. Så nu är det udda för ett spel för oss att ha negativ poäng, eller hur? Så det håller på att äta dessa och det är som - så vad sägs om när vi får negativ, om vi har ätit för många giftiga fisk, vilt över - haj är för sjuk. Okej. Så vad vi behöver göra är att vi kommer att behöva sända en viss händelse - spelet över. Så vi kunde göra på flera sätt, faktiskt. Vi skulle kunna ha någonstans i scenen ett skript som kontinuerligt kontroller är poängen negativt? Är poängen negativt? Om ja, då vi sänder denna händelse. Så det är ett sätt att göra det. Eller vi kan dra fördel av det faktum att vi vet att enda sättet att din poäng skulle vara negativt är när du äter en Giftiga fiskar, eller hur? För när du äter en annan fisk, din poäng kommer att öka. Så det är ingen idé att kontrollera om det ska vara spelet över eller inte. Så detta är en liknande process här. Så vi kan faktiskt bara lägga till denna "när jag får haj sjuk. " Så säger vi till detta tillstånd. Vi vill säga, om summan är mindre än 0. Så vi kommer att gå till operatörer, vi kommer att använda detta mindre än en, kommer vi att dra våra poäng här, säger 0. Och så, om resultatet är 0, då vi vill sända något som kallas spelet över. OK. Så säger vi game over. Låt oss gå den här eller något. Tja, vill vi att hajen bara att gå tillbaka till att vara hungrig om spelet kan fortfarande spelas. Så istället för att använda en "om" vi använder ett "om annat" konstruera. Så vad detta innebär - det säger, OK, så om detta villkor är sant, då gör det, men om det är falskt så gör det. Så låt oss lägga om resultatet är mindre än 0, då du sända spelet över, men om inte - om din poäng är fortfarande positiv - sedan gå tillbaka till att vara hungrig. OK. Cool. Så nu när vi har detta spel över händelsen, vi måste ha något sätt för att svara på det. Så låt oss göra ett nytt script som säger "när jag får spel över. "Och vad har vi här under kontroll är faktiskt detta stoppa all knapp, så det i princip härmar dig klicka den röda stoppskylt här. Så låt oss ha haj stopp. Och så vill vi också att fisken att stanna, så låt oss dra och kopiera in den Vi vill att alla fisken att stanna. Och sedan låta oss ha scenen stopp liksom. Okej. Så simmar runt, äter vi en fisk, och sedan programmet fryser. Jag klickar ner men jag kan faktiskt inte göra någonting. OK, men låt oss säga att vi inte vill att påminna användaren om att de har ett negativt värde, till exempel, då kan vi, för exempel dölja variabel från skärmen. Så när scenen får spelet över, så kommer det att gömma variabeln poäng. OK. Så låt oss äta en mer fisk. Och sedan poängen försvinner, och du bara har den här skärmen. Okej. Så det är en ganska anständig spel, och om du hade mer tid, då kan du så småningom lägga fler och fler skript. Och så då lade jag ett par mer fisk, gjorde dem framåt vid olika hastigheter och sedan när hajen äter Giftiga fiskar, säger det faktiskt, "Blech!" Och vad jag är jag lagt till en ny bakgrund till stadium - ett spel över bakgrunden. Och så vad scenen gör under spelets över händelsen hantering är den växlar till bakgrunden av spelet över bakgrund. Och liksom, gömde jag alla sprites från scenen så att bara spelet över bakgrunden visades. Det finns ett par andra små tillägg som jag lagt, till exempel innan när vi slutade vårt program, då vår haj, nästa gång vi började, skulle starta i den positionen också. Vad jag lagt är när den gröna flaggan är tryckt, så hajen går tillbaka till ursprunget och vänt mot rätt, så att varje gång, har du en haj börjar där. Så du kan experimentera i rörelse och saker som att bara för att lägga lite finputsning som gör din spelet lite mer polerat. Har någon några frågor om HungryShark? Cool. Okej. Så det är ett exempel på något som du kan göra i grunden med alla de verktyg som vi diskuterade tidigare. Så jag ingår också i genomgång bilderna. Du ser dem senare. Det är bara en översikt över de processer som vi gjorde - framåt från HungryShark0 hela vägen till vår slutliga. En Ja. Men det är om det. Jag ska stanna kvar om ni vill ställa fler frågor. Detta var Genomgång 0. Tack alla för att ni kom, och jag får se dig på Walkthrough 1.