>> 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.