ROB BOWDEN: Szia. Én Rob. Szeretné tudni, hogyan hajtsák végre ezt a játékot? Nos, kitörni a személyzet megoldás. Szóval, most először fejjel lefelé, hogy az init funkciókat, hogy azt mondta, hogy végre először. Először az egyik akkor vess egy pillantást rajta az init evezni. Rendben, úgy emlékszem, hogy szeretnénk a evezni, hogy pontosan középre az x-tengelyen. Tehát meg kell kitalálni ahol ez kéne. Mivel a szélessége a fórumon -, amely szintén hash határozza up top - kell kivonni azokat a lapát szélességét és elosztjuk 2-vel, úgy, hogy a közepén a lapát van a központ a fórumon. Ne feledje, hogy az x-koordináta utal A bal felső sarokban a lapát, és így ez pontosan hol azt akarjuk, hogy legyen. Az y-koordináta nem számít annyira, mert el tudjuk helyezni , amerre akarunk. Így példányosítanánk a lapát, mi meg A fekete színű, mi meg kitölteni a True így ez egy kitöltött téglalapot, és majd adja hozzá az ablakhoz, és visszatérés a lapát. És ennyi inicializálása a lapát. Ez lesz hasonló az init eredményjelző. Így megyünk inicializálni a címkén, megyünk be a színt világosszürke - akkor vedd amit akar - fogjuk állítani a betűtípust sans serif 48 - is vegye, amit akarsz - mi adjuk hozzá az ablakhoz. Most ez Hátraküldés nem igazán szükséges, ez csak abban az esetben valami más nem történik, hogy átfedés a címkét. Majd ha az általunk használt észlelés Collision, Detect Collision érzékeli a másik dolog, mielőtt azt érzékeli, a címkét. De ez tényleg nem érinti bennünket ebben a programban. Végül pedig itt van ez a frissítés eredménytábla funkció, amit írtam. Szóval vessünk egy pillantást. Nos, itt van valami, ami majdnem azonos azzal, amit láttuk az label.c. Tehát van egy címke - egy karakter puffer 12 karakter, ami éppen elég ahhoz, hogy kezelni minden egész, negatív vagy pozitív. Akkor használjuk sprintf másolni a rámutat a tárolóba. Szóval, s ez tartalmazza a string a pontok számát. Végül, mi meg a címke az, hogy a húr. És akkor meg kell középre a címke Abban az esetben, már ment kilenc 10 pontok és már eltolódott azt. Így számítani az x és y koordináta A címke, amely kap a szélesség és magasság az ablakon. Bár, azt is csak használja a állandók szélesség és magasság hash meghatározott fel tetején. Azt is kap a szélesség és magasság a címke és a szakadék hogy a 2-központ. És akkor használjuk Set hely, hogy ténylegesen tegye az adott helyen. Szóval ez azt init eredményjelző. OK. Tehát init golyó lesz nagyon hasonló init lapátok is. Látjuk, hogy mi használ newgoval annak érdekében, hogy példányosítani egy új labdát. És itt mi használ 2-szer a sugár mint a szélessége a labdát, és a 2. alkalommal a sugár, mint a magasságát a labdát. Most is newgoval, az x és y-koordináta, hogy átadjuk az megy olvassa el a bal felső sarkában a labda, ami valójában kívül a labda is. Így annak érdekében, hogy a labda pontosan középpontjában a fórumon, meg kell, hogy adja át szélessége osztva 2 a központ, és a majd vonjuk ki a méretét, hogy álljon A tényleges központja a labdát a központ a fórumon. És mi pontosan ugyanaz a dolog Az y-tengely, azzal az eltéréssel, magasság helyett szélességét. Tehát, hogy hozza a labdát a központban. És ez egy példányt a labdát, állítsa be a színe fekete, töltse ki a labdát, végül hozzá a ablakot, és vissza. És ennyi inicializálása a labdát. És most vessünk egy pillantást init téglák ami valamivel több bonyolult, de ez elég hasonló init evezni. Nos, először azt kell kitalálni, a szélességét az egyes tégla. Ne feledje, hogy van egy állandó neve kéri, amely meghatározza a oszlopainak száma téglák hogy mi van. Tehát, mi fogja meghatározni a szélességét egyetlen tégla azáltal, hogy a szélesség az egész testület, kivonva ki a méret a különbség - amelyet a hash meghatározott fel felső és utal a képpontok számát, hogy között kell lennie az egyes tégla - , és így megyünk, hogy összesen rés alkalommal kéri üres pixel a egysoros. És az is utal, hogy néhány üres képpont a bal és jobb oldalán a bal oldali oszlop és a jobb oszlop tégla. Tehát vonjuk ki azokat üresen pixel hagy minket a képpontok számát, hogy tégla ténylegesen használ. És akkor osztunk hívásokat kap a képpontok számát egy tégla. Tehát itt mi határozza meg egy tömböt, hogy csak meghatározza a színeket akarunk minden sor tégla. Ha több sor tégla, mint színeket, hogy meghatározott, majd meglátjuk hogy mi csak loop visszafordult és használjon piros, majd ismét a narancs és a sárga és így tovább. Úgy, mint a p-be spec tippeket vagyunk fog hurok az egész sort és oszlopok a tégla. De mielőtt hurkot az oszlopokat, akkor lásd itt, hogy mi megadásával y pozícióját minden tégla az adott sorban. Azt is mozog ez a második a hurok, de akkor leszünk csak Ennek a számítás újra és újra újra, ha már nem kell. Tehát az Y-pozíció a tégla folyik hogy árrés, ami hash meghatározott fel tetején, és csak utal a tér között, a tetején a fórumon és a kezdete az összes téglát. És fogunk hozzá, hogy a sor hogy mi vagyunk az idő magassága egy egyes tégla és a rés hogy egymás között tégla. Tehát ez is egy függőleges különbség az egyes tégla. Annak érdekében, hogy számunkra az y-koordináta a tégla. Tehát itt fogunk számítani Az x-koordinátája a tégla. Most már szakadék osztva 2 óta, emlékszem, korábban azt mondta, hogy a bal oldalon a fórumon, megyünk hagyni egy kis helyet. Tehát különbség osztva 2, hogy helyet. És akkor mi hozzátéve, hogy, hogy az oszlop hogy mi vagyunk az idő szélességének plus rés, ahol a szélesség a tárterületet hogy egyetlen tégla vesz fel, és akkor rés a tér között minden tégla. Ahhoz, hogy kiszámítja az x-koordináta a tégla. Most már csak meg kell példányosítani a tégla, tekintettel arra, hogy az x és y-koordináta segítségével kiszámítottuk, hogy a szélessége az egyes tégla, és a szünet magasságig, amely hash meghatározott fel tetején. Mi a szín a tégla. Figyeljük meg, mi a mi szín tömb mi halad a sorban, amelyek A mod num színben, ami megy, hogy minket tekerje vissza körül piros, ha több sorban, mint a szín. Végül, akkor töltse ki a tégla színes és add hozzá az ablakhoz. És ennyi. Szóval, ez az egész a mi inicializálás módszereket. Most meg kell nézni, hogy míg loop, amit kellett, hogy töltse be Tehát itt azt látjuk, hogy ez a mi, míg hurok, amely folytatódni fog, amíg játéknak akkor van vége, ami vagy azt jelenti, elfogy a él, vagy elfogy a tégla. Tehát az első dolog, amit meg egy Várjon Click. Így a játék vár ránk, hogy ténylegesen kattintson, mielőtt a labda megmozdul. És akkor mi lesz hogy csökkentse életét. Tehát, ha már három életet, most vagyunk le a két életet, mi a mi harmadik életet. Fogunk középre a labdát. Tehát most, ez nem igazán fog segíteni minket az első élet játszunk mivel a labda már fog kerültek középre, amikor azt példányai is. De azt látjuk, amikor a végén elveszíti a élet és loop visszafordult, akkor vagyunk szeretne majd centrikus a labdát az alján a fórumon vissza a központban. Szóval, most itt meg kell generálni az x sebessége a labdát. És, mint egy a spec, mi használ d rand 48. generálni véletlen számot adja meg a sebességet. Mi eggyel, hogy mivel mi csak akarjuk, hogy a sebesség a tartományban egy két nulla helyett az egyhez. Végül, mi használ d rand 48-ben ismét Annak meghatározása érdekében, hogy a labda fog mozgatni a bal vagy a jobb kezdeni. Tehát d rand 48 visszaad egy véletlen számot nulla és egy között, ezért megkérdezte ha ez kevesebb, mint 0,5, van egy 50 50 esélye kapcsolási sebessége a labdát, hogy negatív. Végül állítsa függőleges sebességét a labdát, hogy csak valami állandó. Úgy döntünk, három. És most van egy loop. Tehát ez a belső hurok folytatódni fog. Figyeljük meg itt, míg a tégla nagyobb, mint nulla - így ha elfogy a tégla, most már megnyerte a játékot, és mi is kitörni ennek loop - és minden Get y Ball kevesebb, mint a magasság mínusz 2-szer a sugár. Szóval mi ez felismeri, ha a ball történik megy a lapát, a az esetben már elvesztette egy életet. Keresi belül ez a for ciklus van Az ellenőrzés az egér esemény. És így, ha van egy egér esemény, hogy azt jelenti, hogy ellenőrizni kívánja, hogy hogy ha az egér költözött, és ha a egér mozgott, azt akarjuk, hogy a lapát lépést tartani az egérrel. Tehát, hogy ezt megtegyük, kiszámítja az új helyzetét a lapát, ami megy hogy megragad a helyzet az egér - amely megragadja a pozíciót a Amennyiben már sor került - majd fogunk kivonni ki lapát szélessége osztva 2, így az lapát marad középpontjában az egér ahelyett, hogy a bal oldalon a lapát tartózkodó központú. Akkor most mi is akar lenni abban, hogy nem megy át a bal oldali vagy jobb oldalán a fórumon. És itt mi csak ellenőrizni, ha a lapát lenne ki a bal oldalán fórumon, csak kibír azt a bal oldalon. És itt vagyunk ellenőrizni, ha a lapát vége lenne a jobb oldalon a tábla, csak kibír ez a jobb oldalon. És végül, valóban meg a helyét a lapát. Nos, ha nem volt egér mozgását, ez azt jelenti, megyünk szeretné helyezni a labdát. És így már az x és y sebessége a labda és így mozgatni. De most szeretnénk kimutatni egy pár dolgot. Tehát itt vagyunk kimutatására, ha elérünk sem a bal vagy a jobb oldalán board, azt akarjuk, hogy a labdát, hogy ugrál. És így, ebben az esetben, mi meg x sebesség a negatív x sebesség. Ha a labda a tetején a fórumon, akkor mi is akarjuk, hogy a labda pattan. De most meg akarjuk változtatni Az y sebesség. Figyeljük meg, nincs olyan feltétele a labdát ütő alján a Bizottság tagja, hogy már elfogták itt ebben a while ciklus. Végül szeretnénk mutatni néhány ütközések, ahol, ha a labda hit akár a lapát vagy a tégla, azt szeretnénk, hogy néhány speciális eset dolgot. Tehát ha volt egy ütközés, amelyben esetben az objektum nem lesz nulla, akkor ha az objektum megüt a lapát, akkor azt csak azt, hogy ugrál a labda. És itt is, mi meg a helyét a labdát, hogy éppen a lapát. Figyeljük meg, mi visszük a x helyzetét a labdát, és csak újrafelhasználása ezt. De itt mi megy az Y-pozíció A lapát, és mozog a labda felett a lapát. Ez egy különleges eset úgy, hogy a labda nem ütközik a lapát, majd mielőtt képes mozgatni le a lapát, másik loop megy a környéken, és azt hiszi, hogy még mindig a panel és a így az y sebesség lesz meg vissza negatív, majd a labda csak egyfajta botok pattogó a lapát. Tehát, ha nem érte el a lapát, akkor azt is szeretné ellenőrizni ha megüt a tégla. És ez az, hogy hogyan tudjuk ellenőrizni hogy ha megüt egy tégla. Meg kell, hogy ellenőrizze ezt, mert mi is ténylegesen megüt a címkét, és mi nem akarja, hogy távolítsa el a címkét. Tehát, ha megüt egy tégla, akkor távolítsa el, hogy tégla az ablakon, csökkentés a gróf a tégla, növelni a pontok számát, és most meg kell frissítse az eredménytábla, amely pontosan ugyanaz, mint láttuk korábban, amikor láttuk, init eredményjelző. De most már csak frissíti a eredményjelző hiszen már megváltoztatta a pontok számát. És meg kell jelennie, hogy elérünk még egy szünetet. És végül, ha elérünk egy tégla mi is szeretnénk, hogy ugrál. Így végül, mi szüneteltetjük csak azért, hogy a labda nem mozog szuper gyors és valóban hit, hogy a lapát. És ez nagyjából azt. Szóval most mi lenne loop vissza a tetejére ez a while ciklus és folytatni, amíg vagy elveszítjük az élet, vagy elfogy a tégla. Mi történik, ha elveszítjük az élet? Majd megyünk kilépéshez, miközben loop, és majd meglátjuk, visszafordul, fel tetejére a külső while ciklus. Ebben az esetben, mi lesz végre ez létre újra. És ez létre fog minket várni egy kattintás, csökkentse a szám él, centrikus a labdát, újratervezi egy x és y sebesség, és majd újra a játékot. És így, hogy a jövőben is, amíg vagy téglák végül is kevesebb, mint vagy a nullával egyenlő - ebben az esetben úgy nyerte meg a játékot - vagy él kevesebb, mint nulla, amelyben ha már elvesztette a játékot. Szóval, ha ez a helyzet, akkor kitör az, hogy míg a hurok, és elérjük itt , hova megyünk várni a kattintás mielőtt kilép a játék, hogy a játék nem csak a rögtön csukja ránk. És végül mi zárja le a ablakot, és ennyi. A nevem Rob, és ez volt a Breakout.