ROB BOWDEN: Ahoj. Jsem Rob. Zajímá vás, jak realizovat tuto hru? Dobře, pojďme vypuknout Řešení personál. Takže, pojďme se nejprve hlavou dolů do init funkce, které jsme vám řekl, abyste provádět jako první. První z nich budeme se podívat na to je init pádlo. Dobře, tak si pamatujte, že chceme pádlo, aby se přesně ve středu v x-osa. Takže musíme přijít na to, kde to by mělo jít. Vzhledem k tomu, že šířka desky - což je také hash definovaného up top - musíme odečíst z šířky pádlo a rozdělit o 2, tak, aby centrum pádlo je v střed desky. Pamatujte si, že x-ová souřadnice se vztahuje na levý horní roh pádla, a tak to je přesně tam, kde chceme, aby to bylo. Y-souřadnici nezáleží jak moc, protože můžeme umístit že všude tam, kde chceme. Tak jsme konkretizaci pádlo, jsme se vydali barva černá, jsme si stanovili vyplnit na hodnotu true tak to je vyplněn obdélníku, a my přidejte jej do okna a zpět pádlo. A to je pro inicializaci pádlo. To bude podobné Pro init tabuli. Takže budeme inicializovat štítek, budeme nastavte barvu na světle šedá - můžete si vybrat, co vám chcete - budeme nastavit písmo sans serif 48 - by také mohla vybrat, co chcete - přidáme ji k oknu. Teď to send-to-back je opravdu je to nutné, je to jen v případě, že se něco jinak se stane, aby se překrývaly etiketu. Pak, když jsme se použít Detekce kolize, Detekce kolizí odhalí další věc, než zjistí štítek. Ale opravdu by nemělo mít vliv na nám v tomto programu. Nakonec, máme tuto aktualizaci hodnotící tabulky funkce, které jsme napsali. Takže pojďme se na to podívat. Teď, zde vidíme něco, co je téměř totožný s tím, co jsme viděli v label.c. Takže máme štítek - charakter vyrovnávací paměť 12 znaků, který je jen tak zvládnout jakýkoli integer, negativní nebo pozitivní. Pak jsme se použít sprintf kopírovat poukazuje na této vyrovnávací paměti. Takže je to obsahuje řetězec představující počet bodů. Nakonec jsme se vydali na štítek na tento řetězec. A pak se musíme soustředit na štítek v případě, že jsme šli od devíti do 10 body a jsme posunul ji. Tak jsme vypočítali xay souřadnic na štítku, který bude si šířku a výšku okna. I když bychom mohli také stačí použít konstanty Šířka a Výška hash definováno až nahoru. Také jsme si šířku a výšku štítku a dělení že 2 do centra. A pak jsme se použít Bydliště skutečně dát v tomto umístění. Tak to je pro init tabuli. OK. Takže init míč bude velmi podobné init pádla stejně. Vidíme zde, že jsme pomocí newgoval za účelem vytvoření instance nový míč. A tady jsme pomocí 2 krát poloměr jako je šířka míče, a 2 krát poloměr as výška míče. Nyní, i pro newgoval, x a y-ovou souřadnici, že jsme se projít do děje odkazovat se na levé horní části míč, který je ve skutečnosti mimo míč sám. Tak, aby si přesně míč ve středu desky, musíme projít šířka děleno 2 do centra, a pak odečíst z poloměr tlačit skutečný střed míče do střed desky. A děláme to samé na ose y, s výjimkou použití výška namísto šířky. Tak, že umístí míč ve středu. A to konkretizuje míč, nastavte barva na černou, vyplňte míčem, a nakonec se přidá jej do okno a vrátit jej. A to je pro inicializaci míč. Takže teď se pojďme podívat na init cihly, která je o něco více složité, ale je to docela podobný init pádlo. Nyní, nejprve musíme zjistit, Šířka jednotlivých cihel. Nezapomeňte, že máme konstantu nazvanou volání, která specifikuje počet sloupců cihel že máme. Takže, jdeme zjistit šířku z jedné cihly tím, že šířka celé desky, odečtením z velikosti našeho mezery - který je hash definována až nahoru a odkazuje počtu pixelů, které by měla být mezi jednotlivými cihly - a tak budeme mít celkem mezera doba žádá prázdných pixelů v jednořadé. A to bude také odkazovat se na nějaký prázdný pixelů vlevo a vpravo levý sloupec a pravý sloupec cihla. Takže odečtěte z těch prázdných pixelů listy nás s počtem pixelů, které cihly jsou vlastně používat. A pak jsme se rozdělit o volání, aby se počet pixelů na cihly. Takže tu máme definovat pole, které právě specifikuje barvy, které chceme pro každý řada cihel. Pokud bychom měli více řádků cihel než barvy, které jsme specifikované, uvidíme že budeme právě zpětné smyčky kolem a znovu použít červenou, a pak oranžové a žluté a tak dále. Tak, jako p-set spec rady, jsme jít do smyčky přes všechny řádky a sloupce cihel. Ale dříve, než my smyčky přes sloupy, jsme vidět, že jsme s uvedením y pozice každého cihel v tomto konkrétním řádku. Mohli bychom také přesunout to do druhého pro smyčce, ale pak bychom být jen dělá výpočet znovu a znovu znovu, když nemusíte. Tak y polohy cihel se děje do ziskové rozpětí, které je hash definované up horní a jen se odkazuje na Prostor mezi horní desky a start všech cihel. A budeme přidávat k tomu, že řada že jsme na časy výška cihla jednotlivce a mezera že je mezi jednotlivými cihly. Takže to je také vertikální Mezera mezi jednotlivými cihel. Tak, že nám dává souřadnici y z cihel. Takže tady budeme počítat x-souřadnici cihel. Nyní máme mezeru děleno 2 od roku, pamatovat předtím, jsem řekl, že na levá strana představenstva, jedeme nechat trochu místa. Takže mezera děleno 2 je, že prostor. A pak budeme přidávat k tomu, že sloupec že jsme na dobu šířka a mezera, kde šířka je množství prostoru že jeden cihel a zabírá pak mezera je prostor mezi jednotlivými cihly. Tak, že počítá x-souřadnici z cihel. Teď už stačí jen vytvořit instanci cihly za předpokladu, že x a y-ová souřadnice pomocí šířku, která se vypočítává pro každou výška cihel a přerušení, které je hash definovaného nahoru nahoru. Nastavili jsme barvu cihel. Všimněte si, jsme pomocí našeho barvy pole a jsme kolem v řadě, které byly na mod num barev, které se bude dělat nám zabalit zpět kolem červeně, pokud se mít více řádků, než barvy. Nakonec, budeme vyplnit cihel barva a přidejte ji do okna. A to je vše. Tak, to je pro všechny naše metody inicializace. Nyní se musíme dívat v té chvíli smyčky, které jste měli na vyplnění Takže tady vidíme, že to je naše chvíle smyčka, která bude pokračovat až do Hra je u konce, které buď prostředky jsme dojdou životy nebo jsme se spustit z cihel. Takže první věc, kterou máme Je Počkejte Click. Takže hra čeká nás skutečně klepněte na tlačítko dříve než míč začne pohybovat. A pak jdeme dekrementovat život. Takže pokud jsme měli tři životy, teď jsme se dvěma životy, jsme pomocí našich Třetí život. Jedeme na střed koule. Takže teď, to není opravdu nepomůže nás na prvním životě hrajeme protože míč se již chystá byly ve středu od okamžiku, kdy jsme se instance jej. Ale vidíme, když jsme skončit ztrátou život a smyčka se zpátky, pak jsme bude chtít recenter míč od spodní desky zpět do centrum. Tak, teď tady musíme vytvářet x rychlost míče. A, dle specifikace, jsme pomocí d rand 48 k výrobě asi náhodné číslo určit rychlost. Jsme přidávání kdo, že od té doby jsme právě chtějí rychlost v rozsahu jednoho na dva místo nuly do jedné. Nakonec jsme pomocí d rand 48 opět v aby určila, zda míč se bude pohybovat doleva nebo právo na start. Takže d rand 48 vrátí náhodné číslo mezi nulou a jedničkou, a to tím, že žádá v případě, že je menší než 0,5, máme 50 50 Možnost přepínání rychlosti míč negativní. Nakonec nastavíme vertikální rychlost míč jen nějaká konstanta. Zvolíme tři. A teď tu máme další smyčku. Tak to vnitřní smyčka je bude pokračovat. Všimněte si zde, zatímco cihly je větší než nula - takže když narazíme z cihel, máme vyhrál zápas a můžeme vymanit se z této smyčky - a všichni si y ples menší než výška mínus 2 krát poloměr. Takže, co je to uznání, je-li Míč se stane jít kolem pádlo, v takovém případě jste ztratili život. Hledáte uvnitř této smyčky for my máme kontrola na události myši. A tak, je-li událost, myš, že Znamená to, že chceme zkontrolovat, zda myš byla přesunuta, a v případě, že myš byla přesunuta, chceme mít pádlo držet krok s myší. Takže k tomu, že budeme počítat nový postavení pádla, která se děje chytit pozici myši - která chytne pozici pomocí Událost, která nám byly předány - a pak budeme odečíst z lopatka šířka děleno 2, takže pádlo pobyty zaměřené na myši místo na levé straně lopatky zůstat soustředěný. Takže teď jsme se také chtějí být jisti, že jsme nejdou přes levé nebo pravé straně straně desky. A tak tady máme jen kontrolovat, zda pádlo by se z levé strany deska, jen držet je na levé straně. A tady jsme kontrolovat, zda pádlo by se po pravé straně deska, jen držet ji na pravé straně. A konečně, vlastně sada Umístění pádla. Nyní, v případě, že nebyl pohyb myši, to znamená, že budeme chcete přesunout míč. A tak už máme x a y rychlost míče a tak jsme se přesunout. Ale teď chceme zjistit, pár věcí. Takže tady máme detekci, pokud jsme narazili buď levé nebo pravé straně deska, chceme míč odrazit. A tak, v tomto případě jsme se vydali x rychlost na negativní x rychlosti. Pokud míč hit horní palubě, pak také chceme míč odrazit. Ale teď chceme změnit y rychlost. Všimněte si, že nemáme podmínku pro míč bít do dolní části deska od které již byl zajat tady v tomto cyklu while. A konečně, chceme odhalit některé kolize, kdy v případě, že míč hit buď pádlo nebo cihla, chceme udělat nějaké speciální případové věci. Takže, pokud došlo ke kolizi, v níž Případové objekty nebudou mít hodnotu null, pak, v případě, že objekt zasáhl pádlo, by se jen chci odrazit míč. A tady také, nastavíme umístění míč těsně nad lopatkou. Všimněte si budeme brát x pozice míč a jen opakované použití, které. Ale tady se dostáváme na pozici y pádla a pohybující se míč nad pádlem. Jedná se o zvláštní případ tak, aby míček není hit pádlo a pak, před tím, než je schopen se pohybovat mimo pádlo, další smyčka jde kolem a že si myslí, že je stále na panelu a takže rychlost y dostane nastavit zpět na negativní a pak míč jen tak z hole poskakování na pádlo. Takže, pokud jsme neměli hit pádlo, pak také chtít zkontrolovat pokud se narazí na cihlu. A tak to je, jak můžeme kontrolovat zjistit, jestli jsme narazili na cihlu. Musíme zkontrolovat, protože jsme může skutečně hit štítek a my Nechceme odstranit nálepku. Takže když jsme narazili na cihlu, můžeme odstranit, aby cihly z okna, úbytku náš počet cihel, zvýšit naši počet bodů, a teď musíme aktualizovat srovnávací tabulku, která je přesně to, stejně jako jsme viděli předtím, když jsme viděli, init tabule. Ale teď jsme právě aktualizuje scoreboard, protože jsme změnili počet bodů. A to by měl nyní zobrazit, že se dostaneme ještě jednu přestávku. A nakonec, když jsme hit cihly chceme také odrazit. Tak konečně jsme se pozastavit právě tak, aby míč není v pohybu velmi rychle a my může skutečně udeřil ho s naší pádlem. A to je docela hodně to. Takže teď bychom smyčky zpět na začátek Tento cyklus while a bude pokračovat až buď přijdeme o život nebo jsme se spustit z cihel. Co se stane, když ztratíte život? Pak budeme tuto chvíli zavřete smyčky, a uvidíme, bude smyčka zálohovat v horní části, zatímco vnější smyčky. V tom případě budeme provedení tohoto nastavení znovu. A toto nastavení bude mít nás čekat za proklik, decrement naše číslo životů, recenter míč, přepočítat x a y rychlost, a pak pokračovat ve hře. A tak, že bude pokračovat, dokud buď cihly skončí být menší než nebo rovna nule - V takovém případě jsme vyhráli hru - nebo život je menší než nula, v níž Případ jsme prohráli. Takže, jakmile je to tak, jsme vypuknout tohoto cyklu while, a my jsme se sem dostali kde budeme čekat na kliknutí před ukončením hry tak, aby hra není jen bezprostředně zavřít na nás. A nakonec budeme zavřete okna a je to. Jmenuji se Rob, a to Breakout.