>> ROB BOWDEN: Ahoj.
Som Rob.
Zaujíma vás, ako realizovať túto hru?
Dobre, poďme vypuknúť Riešenie personál.
>> Takže, poďme sa najprv hlavou dole do init funkcie, ktoré sme vám povedal, aby ste
vykonávať ako prvý.
Prvý z nich budeme sa pozrieť na to je init pádlo.
Dobre, tak si pamätajte, že chceme pádlo, aby sa presne v strede v
x-os.
Takže musíme prísť na to, kde to by malo ísť.
>> Vzhľadom k tomu, že šírka dosky - čo je tiež hash definovaného up top -
musíme odpočítať z šírky pádlo a rozdeliť o 2, tak, aby
centrum pádlo je v stred dosky.
Pamätajte si, že x-ová súradnica sa vzťahuje na ľavý horný roh pádla,
a tak to je presne tam, kde chceme, aby to bolo.
Y-súradnicu nezáleží ako moc, pretože môžeme umiestniť
že všade tam, kde chceme.
Tak sme konkretizáciu pádlo, sme sa vydali farba čierna, sme si stanovili vyplniť na hodnotu true
tak to je vyplnený obdĺžnika, a my pridajte ho do okna a späť
pádlo.
A to je pre inicializáciu pádlo.
>> To bude podobné Pre init tabuľu.
Takže budeme inicializovať štítok, budeme nastavte farbu na
svetlo šedá - môžete si vybrať, čo vám chcete - budeme nastaviť písmo
sans serif 48 -
by tiež mohla vybrať, čo chcete -
pridáme ju k oknu.
Teraz to send-to-back je naozaj je to nutné, je to len v prípade, že sa niečo
inak sa stane, aby sa prekrývali etiketu.
Potom, keď sme sa použiť Detekcia kolízie, Detekcia kolízií odhalí ďalšie
vec, než zistí štítok.
Ale naozaj by nemalo mať vplyv na nám v tomto programe.
>> Nakoniec, máme túto aktualizáciu hodnotiacej tabuľky funkcie, ktoré sme napísali.
Takže poďme sa na to pozrieť.
Teraz, tu vidíme niečo, čo je takmer totožný s tým, čo
sme videli v label.c.
Takže máme štítok -
charakter vyrovnávacia pamäť 12 znakov, ktorý je len tak zvládnuť akýkoľvek
integer, negatívne alebo pozitívne.
Potom sme sa použiť sprintf kopírovať poukazuje na tejto vyrovnávacej pamäti.
Takže je to obsahuje reťazec predstavujúci počet bodov.
>> Nakoniec sme sa vydali na štítok na tento reťazec.
A potom sa musíme sústrediť na štítok v prípade, že sme išli od deviatich do 10
body a sme posunul ju.
Tak sme vypočítali xay súradníc na štítku, ktorý bude
si šírku a výšku okná.
Aj keď by sme mohli tiež stačí použiť konštanty Šírka a Výška hash
definovať až nahor.
Tiež sme si šírku a výšku štítku a delenie
že 2 do centra.
A potom sme sa použiť Bydlisko skutočne dať v tomto umiestnení.
Tak to je pre init tabuľu.
>> OK.
Takže init lopta bude veľmi podobné init pádla rovnako.
Vidíme tu, že sme pomocou newgoval za účelom vytvorenia inštancie nový loptu.
A tu sme pomocou 2 krát polomer ako je šírka lopty, a 2
krát polomer as výška lopty.
Teraz, aj pre newgoval, x a y-ovú súradnicu, že sme sa prejsť do deja
odkazovať sa na ľavej hornej časti lopta, ktorý je v skutočnosti
mimo loptu sám.
Tak, aby si presne loptu v strede dosky, musíme prejsť
šírka deleno 2 do centra, a potom odpočítať z polomer tlačiť
skutočný stred lopty do stred dosky.
A robíme to isté na osi y, s výnimkou použitia
výška namiesto šírky.
>> Tak, že umiestni loptu v strede.
A to konkretizuje loptu, nastavte farba na čiernu, vyplňte loptou,
a nakoniec sa pridá ho do okno a vrátiť ho.
A to je pre inicializáciu loptu.
>> Takže teraz sa poďme pozrieť na init tehly, ktorá je o niečo viac
zložité, ale je to celkom podobný init pádlo.
Teraz, najprv musíme zistiť, Šírka jednotlivých tehál.
Nezabudnite, že máme konštantu nazvanú volanie, ktorá špecifikuje
počet stĺpcov tehál že máme.
Takže, ideme zistiť šírku z jednej tehly tým, že šírka
celej dosky, odpočítaním z veľkosti nášho medzery -
ktorý je hash definovaná až hore a odkazuje počtu pixelov, ktoré
by mala byť medzi jednotlivými tehly -
a tak budeme mať celkom medzera doba žiada prázdnych pixelov v
jednoradové.
A to bude tiež odkazovať sa na nejaký prázdny pixelov vľavo a vpravo
ľavý stĺpec a pravý stĺpec tehla.
>> Takže odčítajte z tých prázdnych pixelov listy nás s počtom pixelov, ktoré
tehly sú vlastne používať.
A potom sme sa rozdeliť o volanie, aby sa počet pixelov na tehly.
Takže tu máme definovať pole, ktoré práve špecifikuje farby, ktoré chceme pre každý
rad tehál.
Ak by sme mali viac riadkov tehál ako farby, ktoré sme špecifikované, uvidíme
že budeme práve spätnej slučky okolo a znovu použiť červenú, a potom oranžové a
žlté a tak ďalej.
>> Tak, ako p-set spec rady, sme ísť do slučky cez všetky riadky a
stĺpce tehál.
Ale skôr, než my slučky cez stĺpy, sme vidieť, že sme s uvedením
y pozície každého tehál v tomto konkrétnom riadku.
Mohli by sme tiež presunúť to do druhého pre sláčiky, ale potom by sme byť len
robí výpočet znova a znova znovu, keď nemusíte.
>> Tak y polohy tehál sa deje do ziskové rozpätie, ktoré je hash
definované up hornej a len sa odvoláva na Priestor medzi hornej dosky a
štart všetkých tehál.
A budeme pridávať k tomu, že mnoho že sme na časy výška
tehla jednotlivca a medzera že je medzi jednotlivými tehly.
Takže to je tiež vertikálne Medzera medzi jednotlivými tehál.
Tak, že nám dáva súradnicu y z tehál.
>> Takže tu budeme počítať x-súradnicu tehál.
Teraz máme medzeru deleno 2 od roku, pamätať predtým, som povedal, že na
ľavá strana predstavenstva, ideme nechať trochu miesta.
Takže medzera deleno 2 je, že priestor.
A potom budeme pridávať k tomu, že stĺpec že sme na dobu šírka a
medzera, kde šírka je množstvo priestoru že jeden tehál a zaberá
potom medzera je priestor medzi jednotlivými tehly.
Tak, že počíta x-súradnicu z tehál.
>> Teraz už stačí len vytvoriť inštanciu tehly za predpokladu, že x a y-ová súradnica
pomocou šírku, ktorá sa vypočítava pre každú výška tehál a prerušenia, ktoré je
hash definovaného hore hore.
Nastavili sme farbu tehál.
Všimnite si, sme pomocou nášho farby poľa a sme okolo v rade, ktoré boli
na mod num farieb, ktoré sa bude robiť nám zabaliť späť okolo červeno, ak sa
mať viac riadkov, ako farby.
Nakoniec, budeme vyplniť tehál farba a pridajte ju do okna.
>> A to je všetko.
Tak, to je pre všetky naše metódy inicializácia.
Teraz sa musíme pozerať v tej chvíli slučky, ktoré ste mali na vyplnenie
Takže tu vidíme, že to je naša chvíľa slučka, ktorá bude pokračovať až do
Hra je u konca, ktoré buď prostriedky sme dôjdu životy alebo
sme sa spustiť z tehál.
>> Takže prvá vec, ktorú máme Je Počkajte Click.
Takže hra čaká nás skutočne kliknite na tlačidlo skôr ako lopta začne pohybovať.
A potom ideme dekrementovat život.
Takže ak sme mali tri životy, teraz sme s dvoma životy, sme pomocou našich
Tretí život.
Ideme na stred gule.
Takže teraz, to nie je naozaj nepomôže nás na prvom živote hráme
pretože lopta sa už chystá boli v stredu od okamihu, kedy sme sa
inštancie ho.
Ale vidíme, keď sme skončiť stratou život a slučka sa späť, potom sme
bude chcieť recenter loptu od spodnej dosky späť do
centrum.
>> Tak, teraz tu musíme vytvárať x rýchlosť lopty.
A, podľa špecifikácie, sme pomocou d rand 48 na výrobu asi náhodné číslo
určiť rýchlosť.
Sme pridávanie kto, že od tej doby sme práve chcú rýchlosť v rozsahu jedného
na dva namiesto nuly do jednej.
Nakoniec sme pomocou d rand 48 opäť v aby určila, či lopta
sa bude pohybovať doľava alebo právo na štart.
>> Takže d rand 48 vráti náhodné číslo medzi nulou a jednotkou, a to tým, že žiada
v prípade, že je menšia ako 0,5, máme 50 50 Možnosť prepínania rýchlosti
loptu negatívne.
Nakoniec nastavíme vertikálnu rýchlosť loptu len nejaká konštanta.
Zvolíme tri.
A teraz tu máme ďalší slučku.
>> Tak to vnútorná slučka je bude pokračovať.
Všimnite si tu, kým tehly je väčší ako nula -
takže keď narazíme z tehál, máme vyhral zápas a môžeme
vymaniť sa z tejto slučky -
a všetci si y ples menšia než výška mínus 2 krát polomer.
Takže, čo je to uznanie, ak Lopta sa stane ísť okolo pádlo, v
takom prípade ste stratili život.
>> Hľadáte vnútri tejto slučky for my máme kontrola na udalosti myši.
A tak, ak je udalosť, myš, že Znamená to, že chceme skontrolovať,
či myš bola presunutá, a v prípade, že myš bola presunutá, chceme mať
pádlo držať krok s myšou.
Takže k tomu, že budeme počítať nový postavenie pádla, ktorá sa deje
chytiť pozíciu myši - ktorá chytí pozíciu pomocou
Udalosť, ktorá nám boli odovzdané -
a potom budeme odpočítať z lopatka šírka deleno 2, takže
pádlo pobyty zamerané na myši miesto na ľavej strane lopatky
zostať sústredený.
>> Takže teraz sme sa tiež chcú byť istí, že sme nejdú cez ľavej alebo pravej strane
strane dosky.
A tak tu máme len kontrolovať, či pádlo by sa z ľavej strany
doska, len držať je na ľavej strane.
A tu sme kontrolovať, či pádlo by sa po pravej strane
doska, len držať ju na pravej strane.
A konečne, vlastne sada Umiestnenie pádla.
>> Teraz, v prípade, že nebol pohyb myši, to znamená, že budeme
chcete presunúť loptu.
A tak už máme x a y rýchlosť lopty
a tak sme sa presunúť.
Ale teraz chceme zistiť, pár vecí.
Takže tu máme detekciu, ak sme narazili buď ľavej alebo pravej strane
doska, chceme loptu odraziť.
A tak, v tomto prípade sme sa vydali x rýchlosť na negatívne x rýchlosti.
>> Ak lopta hit hornej palube, potom tiež chceme loptu odraziť.
Ale teraz chceme zmeniť y rýchlosť.
Všimnite si, že nemáme podmienku pre lopta biť do dolnej časti
doska od ktorej už bol zajatý tu v tomto cykle while.
>> A konečne, chceme odhaliť niektoré kolízie, kedy v prípade, že lopta hit
buď pádlo alebo tehla, chceme urobiť nejaké špeciálne prípadové veci.
Takže, ak došlo ku kolízii, v ktorej Prípadové objekty nebudú mať hodnotu null, potom,
v prípade, že objekt zasiahol pádlo, by sa len chcem odraziť loptu.
A tu tiež, nastavíme umiestnenie lopta tesne nad lopatkou.
Všimnite si budeme brať x pozície loptu a len opakované použitie, ktoré.
Ale tu sa dostávame na pozíciu y pádla a pohybujúce sa lopta
nad pádlom.
>> Jedná sa o zvláštny prípad tak, aby loptička nie je hit pádlo a potom,
pred tým, než je schopný sa pohybovať mimo pádlo, ďalšie slučka ide okolo a
že si myslia, že je stále na paneli a takže rýchlosť y dostane nastaviť späť na
negatívne a potom loptu len tak z palice poskakovanie na pádlo.
Takže, ak sme nemali hit pádlo, potom tiež chcieť skontrolovať
ak sa narazí na tehlu.
A tak to je, ako môžeme kontrolovať zistiť, či sme narazili na tehlu.
>> Musíme skontrolovať, pretože sme môže skutočne hit štítok a my
Nechceme odstrániť nálepku.
Takže keď sme narazili na tehlu, môžeme odstrániť, aby tehly z okna, úbytku
náš počet tehál, zvýšiť našu počet bodov, a teraz musíme
aktualizovať tabuľku, ktorá je presne to, rovnako ako sme videli predtým, keď sme videli,
init tabule.
Ale teraz sme práve aktualizuje scoreboard, pretože sme zmenili
počet bodov.
A to by mal teraz zobraziť, že sa dostaneme ešte jednu prestávku.
>> A nakoniec, keď sme hit tehly chceme tiež odraziť.
Tak konečne sme sa pozastaviť práve tak, aby lopta nie je v pohybe veľmi rýchlo a my
môže skutočne udrel ho s našou pádlom.
A to je celkom veľa to.
Takže teraz by sme slučky späť na začiatok Tento cyklus while a bude pokračovať až
buď prídeme o život alebo sme sa spustiť z tehál.
>> Čo sa stane, keď stratíte život?
Potom budeme túto chvíľu zavrite slučky, a uvidíme, bude slučka zálohovať
v hornej časti, zatiaľ čo vonkajšie slučky.
V tom prípade budeme vykonaní tohto nastavenia znovu.
A toto nastavenie bude mať nás čakať za kliknutie, decrement naše číslo
životov, recenter loptu, prepočítať x a y rýchlosť, a
potom pokračovať v hre.
>> A tak, že bude pokračovať, kým buď tehly skončí byť menšia než
alebo rovná nule -
V takom prípade sme vyhrali hru -
alebo život je menšia ako nula, v ktorej Prípad sme prehrali.
Takže, akonáhle je to tak, sme vypuknúť tohto cyklu while, a my sme sa sem dostali
kde budeme čakať na kliknutie pred ukončením hry tak, aby
hra nie je len bezprostredne zatvoriť na nás.
A nakoniec budeme zavrite okná a je to.
Volám sa Rob, a to Breakout.