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.