>> ROB Bowden: Hi.
Mi Rob.
Scivolante kiel apliki ĉi ludon?
Nu, ni ekflamu la bastono solvo.
>> Do, ni unue kapo malsupren al la init funkcioj kiuj ni rakontis al vi por
apliki unue.
Unue oni ni devos tuj iri ĉe tio estas init remilo.
Enorde, do memori, ke ni deziras ke la paddle esti ekzakte centrita en
la x-akso.
Do ni devas konkludi kie tiu devus iri.
>> Donita la larĝeco de la tabulo - kiu Estas ankaŭ hash difinita supren supro -
ni bezonas subtrahi el la remilon larĝa Kaj dividu per 2, tiel ke la
centro de la remilon en la centron de la tabulo.
Memoru ke la x-koordinato rilatas al la supro maldekstra angulo de la remilon,
kaj do ĉi tiu estas precize kie ni volas ke ĝi estu.
La y-koordinato ne gravas tiel ĉar ni povas meti
tio, kien ajn ni volas.
Do ni instantiating la remilon, ni starigis La koloro nigra, ni starigis plenigi Vera
tial ĝi estas plenigitaj en ortangulo, kaj ni tiam aldoni ĝin al la fenestro kaj reveno
la remilon.
Kaj tio estas por inicializar la remilon.
>> Ĝi tuj estos simila por init markilo.
Do ni tuj pravalorizi la stampo, ni tuj starigu la koloron al
malpeza griza - vi povas elekti kion vi deziras - ni tuj starigu la tiparon
senserifa 48 -
povus ankaŭ elekti kion ajn vi volas -
ni aldonos ĝin al la fenestro.
Nun ĉi alsendota apogi ne estas vere necesa, ĝi estas nur en la okazo ion
alie okazas por koincidigi la etikedo.
Tiam, kiam ni uzas Eltrovi Collision, Detekti Kolizio detektos la alia
aferon antaux detektas la etikedo.
Sed kiu vere ne devus tuŝi ni en tiu programo.
>> Fine, ni havas ĉi Ĝisdatigu Scoreboard funkcio kiu ni skribis.
Do ni rigardu tion.
Nun, ĉi tie ni vidas iun kiu estas preskaŭ identa al kio
Ni vidis en la label.c.
Do ni havas etiketon -
karaktero bufro de 12 signoj, kio estas ĝuste sufiĉa por manipuli neniu
entjera, negativa aŭ pozitiva.
Poste ni uzos sprintf kopii la antaŭ en tiu bufro.
Do tio enhavas kordo reprezenti la nombro de punktoj.
>> Fine, ni starigis la etikedo al kiuj kordoj.
Kaj tiam ni devas centri la etiketon en la okazo ni foriris de naŭ ĝis 10
antaŭ kaj ni ŝanĝiĝis ĝi.
Do ni kalkulas la x kaj y-koordinatoj de la etikedo kiu volas
get larĝo kaj alto el la fenestro.
Kvankam, ni povus ankaŭ simple uzas la konstantoj Larĝo kaj Alto hash
difinita supren top.
Ni ankaŭ preni la larĝeco kaj alteco de la etiketo kaj dividi
ke per 2 center.
Kaj tiam ni uzas Ara Loko por fakte metu gxin en tiu loko.
Do jen ĝi por init markilo.
>> OK.
Do init bulo tuj estos tre similaj al init remilojn tiel.
Oni vidas ĉi tie ke ni uzas newgoval por generi novan pilkon.
Kaj tie ni uzas 2 fojoj la radiuso kiel la larĝo de la pilko, kaj 2
tempoj la radiuso kiel la alteco de la bulo.
Nun, ankaŭ por newgoval, la x kaj y-koordinato ke ni iam en tuj
por referi al la supro maldekstro de la bulo, kiu estas fakte
ekster la pilko mem.
Do, por akiri la pilkon ekzakte centrita en la estraro, ni bezonas pasi
larĝa dividite per 2 por la centro, kaj tiam subtrahi el la radiuso puŝi
la reala centro de la pilko en la centron de la tabulo.
Kaj ni faru la ĝusta sama aĵo por la y-akso, escepte uzi
alteco anstataŭ larĝa.
>> Do kiu metas la pilkon en la centro.
Kaj tion instantiates la pilko, starigis la koloron al nigra, plenigu la pilko,
tiam finfine aldoni gxin al la fenestro kaj revenas ĝi.
Kaj tio estas por inicializar la pilko.
>> Do nun ni rigardu init brikoj kiu estas iomete pli
komplika, sed ĝi estas bela simila al init paddle.
Nu, unue ni bezonas eltrovi la larĝo de ĉiu briko.
Memoru, ke ni havas konstantan nomata alvokoj kiuj specifas la
nombro de kolumnoj de la brikoj kiuj ni havas.
Do, ni tuj determinas la larĝa de unu brikon per prenante la larĝa
de la tuta estraro, subtrahanta el la grandeco de nia breĉo -
kio estas hash difinita supren supro kaj referencas la nombro de rastrumeroj, ke
devus esti inter ĉiu briko -
kaj tiel ni tuj havos tuta de breĉo fojojn nomas malplenan pixeles en
sola vico.
Kaj tio estos ankaŭ referi al iu blank rastrumeroj al la maldekstra kaj dekstra el la
maldekstra kolumno kaj dekstra kolumno briko.
>> Do subtrahi el tiuj vakuaj rastrumeroj lasas nin kun nombro de rastrumeroj, ke
Brikoj efektive uzas.
Kaj tiam ni dividu per alvokoj akiri la nombro de rastrumeroj po briko.
Do ĉi tie oni difinas tabelo kiu nur Specifas la koloroj ni volas por ĉiu
vico de brikoj.
Se ni havis pli da vicoj de la brikoj, ol koloroj kiuj ni specifita, ni vidos
ke ni simple buklo reen ĉirkaŭe kaj uzi ruĝa denove, kaj tiam oranĝo kaj
flava kaj tiel plu.
>> Do, kiel la p-aro spec aludojn, ni estas tuj buklo super ĉiuj vicoj kaj
kolumnoj de la brikoj.
Sed antaŭ ol ni buklo sur la kolumnoj, ni vidi ĉi tie ke ni preciziganta la
y pozicion de ĉiu briko en tiu aparta vico.
Ni povus ankaŭ movi ĉi en la dua buklo, sed tiam ni nur esti
fari la ŝtonon super kaj super denove kiam ni ne bezonas.
>> Do la y pozicio de la brikoj tuj esti rando, kiu estas hash
difinita supren supro kaj simple rilatas al la spacon inter la supro de la estraro kaj
la komenco de ĉiu el la brikoj.
Kaj ni tuj aldonu por ke la vico kiuj ni estas je fojoj la alteco de
individuaj briko plus la breĉo ke estas inter ĉiu briko.
Do tiu estas ankaŭ vertikala breĉo inter ĉiu briko.
Do kiu donas al ni la y-koordinato de la brikoj.
>> Do ĉi tie oni iras al kalkuli la x-koordinato de la brikoj.
Nun, ni havas breĉon dividita per 2 ekde, memori antaŭ, mi diris ke en la
maldekstra flanko de la tabulo, ni iras forlasi iom spaco.
Do breĉo dividite per 2 estas tiu spaco.
Kaj tiam ni aldonante ke la kolumno kiuj ni estas je fojoj larĝa plus
breĉo, kie larĝo estas la sumo de spaco ke nur unu briko okupas kaj
tiam breĉo estas la spaco inter ĉiu briko.
Do kiu kalkulas la x-koordinato de la brikoj.
>> Nun ni nur bezonas generi la briko donita, ke x kaj y-koordinato
uzante larĝa, ke ni kalkulas por ĉiu briko, kaj ripozon alteco, kiu estas
hash difinita supren top.
Ni starigis la koloro de la brikoj.
Rimarku ni uzas nian kolorojn tabelo kaj ni pasis en la vico, kiuj estis
sur mod num koloroj kiuj tuj fari ni wrap reen ĉirkaŭe al ruĝa, se ni
havas pli da vicoj ol koloroj.
Fine, ni devos plenigi la briko kolora kaj aldonu ĝin al la fenestro.
>> Kaj tio estas ĝi.
Do, tio estas por ĉiuj niaj inicialización metodojn.
Nun ni devas rigardi, ke dum buklo, ke vi devis plenigi in
Do ĉi tie oni vidas, ke cxi tiu estas nia tempo buklo, ke tio daŭros ĝis
ludo estas finita, kiu ĉu rimedoj Ni kuras el vivoj aŭ
Ni kuras el brikoj.
>> Do unue ni devas Estas Esperu Klaku.
Do la ludo atendas nin por reale klaku antaux la pilko komencas movi.
Kaj poste ni iras al dekremento vivoj.
Do, se ni havis tri vivoj, nun ni estas malsupren al du vivoj, ni uzas niajn
tria vivo.
Ni iras al centro de la pilko.
Do nun, tio ne vere helpos nin je la tre unua vivo ni ludas
ekde la pilko estas jam tuj estis centrita de kiam ni
instantiated ĝin.
Sed ni vidos, kiam ni finos perdinte la vivo kaj buklo reen ĉirkaŭe, tiam ni estas
tuj volas recenter la pilko de la malsupro de la plato reen al
la centro.
>> Do, nun tie ni bezonas por generi la x rapido de la pilko.
Kaj, kiel por la specifon, ni uzas d rand 48 por generi iu hazarda nombro
specifi la rapidon.
Ni aldonante al kiu pro tio ke ni ĵus ĉu la rapido en la gamo de unu
al du anstataŭ nulo al unu.
Fine, ni uzas d rand 48 denove en Por determini ĉu la pilkon
tuj movi maldekstren aŭ la rajton komenci.
>> Do d rand 48 resendas hazarda nombro inter nul kaj unu, kaj tial, Petante
se tio estas malpli ol 0,5, ni havas 50 50 Ebla ŝanĝante la rapido de
la pilko estos negativa.
Fine, ni starigos la vertikala rapido de la pilkon al nur esti iu konstanto.
Ni elektos tri.
Kaj nun ni havas alian buklo.
>> Do tiu ena buklo estas tuj daŭrigi.
Rimarku tie, dum brikoj estas pli granda ol nulo -
tial se ni kuras el brikoj, ni gajnis la ludon kaj ni povas
rompi el tiu buklo -
kaj ĉiujn Get y Pilko malpli ol alto minus 2 fojoj la radiuso.
Do kio estas tiu estas rekonante estas se la pilko okazas iri preter la remilon, en
tiaokaze vi perdis la vivon.
>> Looking ene ĉi por buklo ni havas La kontrolanta por muson okazaĵo.
Kaj do, se estas muso okazaĵo, kiu signifas ke ni volas kontroli por
vidi, ĉu la muso ekscitigxis, kaj se la muso ekscitigxis, ni volas havi la
paddle teni supren per la muso.
Do, por fari tion, ni kalkulas la nova pozicio de la remilon, kiun tuj
ekpreni la pozicio de la muso - kiuj ekprenas la pozicio per la
okazaĵo, ke ni pasis -
kaj poste ni iras al subtrahi el paddle larĝa dividita per 2, do la
paddle estadoj centrita je la muso anstataŭ la maldekstra flanko de la remilon
resti centrita.
>> Do nun ni ankaŭ volas esti certa, ke ni ne iru sur la maldekstra flanko aŭ dekstra
flanko de la tabulo.
Kaj do tie ni nur kontrolas, se la paddle estus ekstere de la maldekstra flanko de
la estraro, simple algluita ĝin al la maldekstra flanko.
Kaj ĉi tie ni estas kontrolanta se la remilon estus super la dekstra flanko de la
estraro, simple trae al la dekstra flanko.
Kaj fine, ni efektive starigos la situo de la remilon.
>> Nun, se tie ne estis muso movado, tio signifas ke ni tuj
volas movi la pilko.
Kaj tial ni jam havas la x kaj y rapido de la pilko
kaj tiel ni movi ĝin.
Sed nun ni volas detekti paro aferojn.
Do jen ni detekti se ni batis ĉu la maldekstra aŭ dekstra flanko de la
tabulo, ni volas la pilkon por eksalti.
Kaj tial, en tiu kazo, ni starigis x rapido por negativaj x rapido.
>> Se la pilko trafis la pinton de la estraro, tiam ni ankaŭ volas la pilko resalto.
Sed nun ni ja volas ŝanĝi la y rapido.
Rimarku ke ni ne havas kondiĉon por la pilko bati la fundo de la
tabulo de tiu jam estis kaptita ĝis ĉi tie en ĉi tiu tempo buklo.
>> Fine, ni deziras al detekti kelkajn kolizioj kie se la pilko de sukceso
ĉu la remilon aŭ la brikoj, ni volas fari ian specialan kazon aferojn.
Do, se estis kolizio, en kiu kazo objektoj ne estos nula, tiam,
se la objekto batis la remilon, ni farus nur volas eksalti la pilkon.
Kaj tie, ankaŭ, ni starigos la situon de la pilkon al ĝuste super la remilo.
Rimarku ni preni la x pozicio de la pilkon kaj ĝuste reutilizando tio.
Sed ĉi tie ni estas duumaj la y pozicio de la remilon kaj movante la pilkon
supre la remilon.
>> Ĉi tiu estas speciala okazo, por ke la pilko ne batis la remilon kaj poste,
antaŭ ol ĝi estas kapabla movi for la remilon, alia buklo iras ĉirkaŭe kaj
pensas ĝi estas ankoraŭ sur la panelon kaj tial la y rapido gets starigis reen al
negativa kaj tiam la pilkon nur speco el bastonoj rebotadores sur la remilon.
Do, se ni ne batis la remilon, tiam ni ankaŭ volas kontroli
se ni batis la brikoj.
Kaj do jen kiel ni povas kontroli por vidi, ĉu ni batis brikon.
>> Ni bezonas kontroli por tion ĉar ni povas efektive batis la etiketo kaj ni
ne volas forigi la etikedo.
Do, se ni batis brikon, ni povas forigi ke briko el la fenestro, dekremento
nian grafon de la brikoj, pliigo nia numeron de punktoj, kaj nun ni bezonas
ĝisdatigi la markilo kiuj estas ekzakte la samaj, kiel ni vidis antaŭe, kiam ni vidis
init markilo.
Sed nun ni estas nur ĝisdatigas la markilo ekde ni ŝanĝis la
numeron de punktoj.
Kaj nun devus montri ke ni trafis unu pli ripozon.
>> Kaj fine, se ni batis brikon ni ankaŭ volas eksalti.
Do fine, ni paŭzi ĝuste tial, ke la pilko estas ne movante la super rapida kaj ni
povas reale batis gxin per nia remilo.
Kaj tio estas pli-malpli ŝin.
Do nun ni farus buklo reen al la supro de tiu dum loop kaj daŭrigos ĝis
ĉu ni perdas vivon aŭ Ni kuras el brikoj.
>> Kio okazas se ni perdos la vivon?
Tiam ni iras por eliri ĉi dum buklo, kaj ni vidos volo buklo asist
al la supro de la ekstera dum buklo.
En kiu kazo, ni iras al Plenumu ĉi starigis denove.
Kaj ĉi tiu starigis tuj havas nin atendi dum klako, dekremento nia nombro
da vivoj, recenter la pilko, _recalculate_ x kaj y rapido, kaj
tiam rekomenci la ludon.
>> Kaj tiel, ke ĝi daŭrigos ĝis ĉu brikoj finu estante malpli ol
aŭ egala al nulo -
tiaokaze ni gajnis la ludon -
aux vivojn estas malpli ol nulo, en kiu kazo ni perdis la ludon.
Do, iam tio estas la kazo, ni ekflamu de tiu tempo buklo, kaj ni atingos tien
kie ni iras atendi klaku antaŭ ol eliri de la ludo por ke la
ludo ne nur tuj fermi nin.
Kaj fine ni devos fermi la fenestro kaj tio estas ĝi.
Mia nomo estas Rob, kaj tio estis Breakout.