>> Rob BOWDEN: Hi.
Ako Rob.
Nag-iisip kung paano ipatupad ang larong ito?
Well, ni magsimula ipaalam ang kawani ng solusyon.
>> Kaya, sabihin muna ulo pababa sa init mga function na sinabi namin sa iyo na
ipatupad muna.
Una isa kami na ang isang hitsura sa ito ay init sagwan.
Ang lahat ng mga karapatan, kaya tandaan na gusto namin ang magtampisaw na eksaktong nakasentro sa
ang x-axis.
Kaya kailangan namin upang malaman kung kung saan na dapat pumunta.
>> Given ang lapad ng board - na ay hash din tinukoy up tuktok -
kailangan naming ibawas ang lapad ng sagwan at hatiin sa pamamagitan ng 2, upang ang
gitna ng sagwan ay nasa sa gitna ng board.
Tandaan na ang x-coordinate ay tumutukoy sa sa tuktok na kaliwang sulok ng sagwan,
at kaya ito ay kung saan mismo gusto naming ito upang maging.
Ang y-coordinate ay hindi mahalaga bilang magkano dahil maaari kaming maglagay
ito kung saan man namin gusto.
Kaya namin instantiating ang sagwan, itinakda namin ang itim na kulay, itinakda namin punan sa True
kaya ito ay isang napunan na parihaba, at kami pagkatapos ay idagdag ito sa window at pagbalik
ang sagwan.
At na ito para sa Sinisimulan ang sagwan.
>> Ito ay magiging katulad para sa init scoreboard.
Kaya kami ay pagpunta sa pagsisimula ng pag-label, kami ay pagpunta upang itakda ang kulay sa
mapusyaw na kulay abo - maaari kang pumili ng kahit anupamang mo gusto - kami ay pagpunta upang itakda ang font sa
sans serif 48 -
maaari ring pumili ng kahit anong gusto mo -
ipapakita namin idagdag ito sa window.
Ngayon ito ipadala upang i-back ay hindi talaga kinakailangan, ito ay lamang sa kaso ng isang bagay
iba ang mangyayari sa nagsasapawan sa label.
Pagkatapos ay kapag ginagamit namin Alamin ang banggaan, Alamin ang banggaan ay matuklasan ang iba pang mga
bagay bago ito nakita ng mga label.
Ngunit na hindi talaga dapat makakaapekto sa amin sa programang ito.
>> Panghuli, mayroon kaming ito I-update ang Scoreboard function na kami ay sumulat.
Kaya ipaalam sa tumagal ng isang pagtingin sa na.
Ngayon, narito makita kami ng isang bagay na halos magkapareho sa kung ano
nakita natin sa label.c.
Kaya mayroon kaming isang label -
isang character sa buffer ng 12 mga character, na kung saan ay sapat lamang upang mahawakan ang anumang
integer, negatibo o positibo.
Pagkatapos ay ginagamit namin sprintf upang kopyahin ang mga tumuturo sa na buffer.
Kaya s naglalaman ito ng isang string na kumakatawan sa ang bilang ng mga puntos.
>> Sa wakas, itinakda namin ang label sa na string.
At pagkatapos ay kailangan namin upang igitna ang label kung sakaling na-nawala namin mula sa siyam sa 10
nagtuturo at ang Paglipat namin ito.
Kaya kinakalkula namin ang x at y-coordinate ng label na habilin
makakuha ng lapad at ang taas ng window.
Bagaman, maaari din namin ang lamang ang Lapad constants at Taas ng hash
tinukoy up tuktok.
Inirerekumenda rin makuha ang lapad at taas ng mga label at paghati-hatiin
na sa pamamagitan ng 2 sa center.
At pagkatapos ay ginagamit namin Magtakda ng Lokasyon upang aktwal na ilagay ito sa lokasyong iyon.
Kaya na ito para sa init scoreboard.
>> OK.
Kaya init bola ay magiging katulad na katulad sa init pati na rin paddles.
Nakakakita kami dito na ginagamit namin newgoval upang magbigay ng halimbawa ng isang bagong bola.
At dito ginagamit namin 2 beses ang radius bilang ang lapad ng mga bola, at ng 2
beses ang radius bilang taas ng bola.
Ngayon, din para sa newgoval, ang x at y-coordinate na dumadaan kami sa ay pagpunta
upang sumangguni sa kaliwang tuktok ng ball, na kung saan ay ang tunay
sa labas ng bola mismo.
Kaya sa pagkakasunud-sunod upang makakuha ng mga bola eksakto nakasentro sa board, kailangan namin upang pumasa
lapad na hinati sa 2 para sa sentro, at pagkatapos ibawas ang radius upang itulak
ang aktwal na gitna ng bola sa sa gitna ng board.
At gawin namin ang eksaktong parehong bagay para sa y-axis, maliban sa paggamit
taas sa halip na lapad.
>> Kaya na naglalagay sa mga bola sa sentro.
At ito instantiates ang bola, itakda ang kulayan sa itim, punan ang bola,
pagkatapos ay sa wakas ay idagdag ito sa window at ibalik ito.
At na ito para sa Sinisimulan ang bola.
>> Kaya ngayon hayaan tumagal ng isang pagtingin sa init bricks na kung saan ay bahagyang higit pa
kumplikado, ngunit ito ay medyo katulad ng init sagwan.
Ngayon, kailangan muna naming malaman ang lapad ng bawat ladrilyo.
Tandaan na mayroon kami ng isang pare-pareho ang tinatawag na na tawag ay tinutukoy ang
bilang ng haligi ng bricks na mayroon kami.
Kaya, kami ay pagpunta upang matukoy ang lapad ng isang solong brick sa pamamagitan ng paglalaan ng lapad
ng buong board, pagbabawas ang laki ng aming mga agwat -
na kung saan ay tinukoy up hash tuktok at tumutukoy sa bilang ng mga pixels na
dapat nasa pagitan ng bawat brick -
at sa gayon kami ay pagpunta sa magkaroon ng isang kabuuang ng beses na agwat sa tawag blangko pixels ang isang
solong hilera.
At iyon ay ring sumangguni sa ilang mga blangko pixel sa kaliwa at kanan ng
kaliwang haligi at kanang mga brick haligi.
>> Kaya ibawas out mga blangko pixels nag-iwan sa amin ng isang bilang ng mga pixels na
brick ay aktwal na paggamit.
At pagkatapos ay hinati namin sa pamamagitan ng mga tawag upang makakuha ng ang bilang ng mga pixels per brick.
Kaya dito tinutukoy namin isang array na lang Tinutukoy ang mga kulay na gusto namin para sa bawat
hilera ng mga brick.
Kung nagkaroon kami higit pang mga hilera ng bricks kaysa kulay na aming tinukoy, ipapakita namin makita
na kami ay loop lamang pabalik sa paligid at gamitin muli pula, at pagkatapos ay orange at
dilaw at iba pa.
>> Kaya, bilang ang mga pahiwatig spec p-set, kami ay pagpunta sa loop sa lahat ng mga hilera at
hanay ng mga brick.
Ngunit bago loop kami sa ibabaw ng mga haligi, namin makikita dito na naka pagtukoy namin ang
posisyon y ng bawat brick sa partikular na hilera.
Maaari din namin ilipat ito sa ang pangalawang para sa loop, ngunit pagkatapos namin nais lamang maging
paggawa ng pagkalkula nang paulit-ulit muli kapag hindi namin na kailangang.
>> Kaya ang posisyon y ng brick ay pagpunta upang maging margin, na kung saan ay hash
tinukoy up tuktok at lamang ay tumutukoy sa puwang sa pagitan ng tuktok ng board at
ang simula ng lahat ng mga brick.
At kami ay pagpunta upang idagdag sa na ang hilera na kami sa beses ang taas ng isang
indibidwal na brick plus ang puwang na ay sa pagitan ng bawat ladrilyo.
Kaya ito ay isang vertical na rin agwat sa pagitan ng bawat ladrilyo.
Kaya na nagbibigay sa amin ang y-coordinate ng mga brick.
>> Kaya dito kami ay pagpunta sa kalkulahin ang x-coordinate ng mga brick.
Ngayon, mayroon kaming puwang na hinati sa 2 mula noong, tandaan bago, sinabi ko na sa
iniwan gilid ng board, kami ay pagpunta mag-iwan ng kaunting espasyo.
Kaya puwang na hinati sa 2 ay puwang na iyon.
At pagkatapos kami ay pagdaragdag ng sa na ang mga haligi na kami sa mga oras lapad plus
puwang, kung saan lapad ay ang halaga ng puwang na isang solong brick tumatagal ng hanggang at
pagkatapos puwang ay ang puwang sa pagitan ng bawat ladrilyo.
Kaya na kinakalkula ang x-coordinate ng mga brick.
>> Ngayon ay kailangan lang namin sa magbigay ng halimbawa ang brick ibinigay na x at y-coordinate
gamit ang lapad na namin kinakalkula para sa bawat na taas brick, at pahinga ay
hash tinukoy up tuktok.
Itinakda namin ang kulay ng brick.
Pansinin na aming ginagamit sa aming mga array kulay at kami ay pagpasa sa hilerang iyon ay
sa mod kulay num na kung saan ay pagpunta sa gumawa amin balutin pabalik sa paligid sa pula kung namin
may higit pang mga hilera sa kulay.
Sa wakas, makikita namin punan ang mga brick kulayan at idagdag ito sa window.
>> At na ito.
Kaya, na ito para sa lahat ng aming mga pamamaraan Pinasimulan.
Ngayon ay kailangan naming pag-isipan na habang loop na kayo ay nagkaroon ng upang punan in
Kaya dito nakita namin na ito ang aming habang loop na ay pagpunta sa magpatuloy hanggang sa
laro ay higit sa, na kung saan ang alinman sa mga paraan tumakbo kami sa labas ng buhay o
tumakbo kami sa labas ng bricks.
>> Kaya unang bagay na mayroon kami ay isang Hinihintay para sa Click.
Kaya naghihintay ang mga laro para sa amin upang aktwal na i-click bago magsimula ang bola gumagalaw.
At pagkatapos ay kami ay pagpunta sa pagbawas buhay.
Kaya kung nagkaroon kami ng tatlong mga buhay, ngayon kami ay down sa dalawang mga buhay, ginagamit namin ang aming
pangatlong buhay.
Kami ay pagpunta upang igitna ang bola.
Kaya ngayon, ito ay hindi talagang pagpunta upang matulungan amin sa pinakaunang buhay-play namin
dahil ang bola ay pagpunta sa Na-nakasentro mula noong tayo
instantiated ito.
Ngunit makita namin kapag napupunta kami nawawalan ng buhay at loop pabalik sa paligid, pagkatapos kami ay
pagpunta sa nais na recenter ang bola mula sa sa ilalim ng board pabalik sa
sa gitna.
>> Kaya, ngayon dito kailangan namin upang bumuo ng ang x bilis ng bola.
At, bilang bawat ang spec, naka-namin ang paggamit d ribete 48 upang bumuo ng ilang mga random na numero
upang tukuyin ang bilis.
Kaming nagdadagdag ng isa sa na dahil kami lamang gusto ang bilis nasa hanay ng isa
sa dalawang sa halip ng zero sa isa.
Panghuli, ginagamit namin muli d ribete 48 sa Upang matukoy kung ang bola
ay pagpunta sa ilipat sa kaliwa o kanan upang magsimula.
>> Kaya d ribete 48 nagbabalik ng random na numero sa pagitan ng zero at isa, at sa gayon sa pamamagitan ng pagtatanong
kung na mas mababa sa 0.5, mayroon kaming 50 50 pagkakataon ng lumilipat ang bilis ng
ang ball upang maging negatibo.
Sa wakas, itinakda namin ang vertical bilis ng ang ball upang maging lamang ng ilang mga pare-pareho.
Pumili kami ng tatlong.
At ngayon kami ay may isa pang loop.
>> Kaya ito inner loop ay pagpunta upang magpatuloy.
Pansinin dito, habang bricks ay mas mataas sa zero -
kaya kung nagpapatakbo namin out sa brick, hindi namin Nanalo ang laro at kaya namin
masira out ng ito loop -
at lahat Kumuha y Ball mas mababa sa taas minus 2 beses ang radius.
Kaya kung ano ito ay pagkilala ay kung ang mangyayari ball upang pumunta nakalipas na ang sagwan, sa
kung saan nawalan ka ng isang buhay.
>> Naghahanap loob ito para sa loop mayroon kami ang pagsuri para sa isang kaganapan ng mouse.
At kaya, kung mayroong isang kaganapan mouse, na Ibig sabihin nito na gusto naming suriin upang
makita kung ang mouse ay nalipat, at kung ang mouse ay nalipat, gusto naming magkaroon ang
sagwan panatilihin up gamit ang mouse.
Kaya, upang gawin iyon, kinakalkula namin ang bagong posisyon ng mga sagwan, na kung saan ay pagpunta
upang grab ang posisyon ng mouse - na grabs ang posisyon ng paggamit ng
kaganapan na tayo ay pumasa sa -
at pagkatapos kami ay pagpunta sa ibawas out sagwan lapad na hinati sa 2, kaya ang
sagwan mga pananatili nakasentro sa mouse sa halip na ang kaliwang bahagi ng sagwan
naglalagi nakasentro.
>> Kaya ngayon ay nais rin naming makatiyak na namin huwag pumunta sa ibabaw ng kaliwang bahagi o pakanan
gilid ng board.
At kaya dito kami ay lamang ng pagsuri kung ang magtampisaw ay magiging off sa kaliwang bahagi ng
sa board, ilagay lamang ito sa kaliwang bahagi.
At dito namin Sinusuri kung ang sagwan ay magiging sa ibabaw ng kanang bahagi ng
board, ilagay lang ito sa kanang bahagi.
At sa wakas, namin talagang nakatakda ang lokasyon ng sagwan.
>> Ngayon, kung nagkaroon hindi isang kilusan mouse, ay nangangahulugan na kami ay pagpunta sa
nais upang ilipat ang bola.
At kaya na namin ay may x at y bilis ng bola
at kaya ilipat namin ito.
Ngunit ngayon gusto naming mapansin ng ilang mga bagay.
Kaya dito kami detect kung pindutin namin ang alinman sa sa kaliwa o kanang bahagi ng
board, gusto namin ang bola sa bounce.
At kaya, sa kasong iyon, itinakda namin x kabilisan sa mga negatibong x bilis.
>> Kung ang hit ang bola sa tuktok ng board, pagkatapos ay gusto rin namin ang bola bounce.
Ngunit ngayon gusto naming baguhin y bilis.
Pansinin wala kaming isang kondisyon para sa ang bola pagpindot sa ibaba ng
board dahil na ay pa nakukuha hanggang dito sa ito habang loop.
>> Panghuli, nais naming makakita ng ilang banggaan kung saan kung ang bola hit
alinman sa sagwan o ang brick, nais naming upang gumawa ng ilang mga espesyal na bagay kaso.
Kaya kung nagkaroon ng banggaan, kung saan kaso bagay ay hindi null, pagkatapos,
kung pindutin ang bagay ang sagwan, kami ay gusto lamang sa bounce ang bola.
At dito, din, itinakda namin ang lokasyon ng ang bola sa itaas lamang ang sagwan.
Pansinin kami ng paggawa ng mga posisyon x ng ang ball at lamang reusing na.
Ngunit dito namin nakukuha ang posisyon y ng sagwan at paggalaw sa bola
sa itaas ng sagwan.
>> Ito ay isang espesyal na kaso nang sa gayon na ang bola hindi hit ang sagwan at pagkatapos,
bago ito nagagawa nitong ilipat off ang sagwan, isa pang loop napupunta sa paligid at
ito sa palagay nito ay sa panel pa rin at kaya ang y kabilisan ay makakakuha ng set pabalik sa
negatibo at pagkatapos ay ang bola lamang uri ng sticks nagba-bounce sa sagwan.
Kaya, kung hindi namin na-hit ang sagwan, pagkatapos kagustuhan din namin na suriin
kung pindutin namin ang mga brick.
At kaya ito ay kung paano namin maaaring suriin upang makita kung pindutin namin ang isang brick.
>> Kailangan namin upang tingnan ang mga ito dahil maaari naming na talagang pindutin ang label at kami
ayaw mong tanggalin ang tatak.
Kaya kung pindutin namin ang isang brick, maaari naming alisin na brick mula sa window, pagbabawas
ang aming pagbilang ng bricks, dinagdagan ng aming bilang ng mga puntos, at ngayon ay kailangan naming i-
i-update ang scoreboard kung saan ay eksaktong katulad ng nakita natin dati kapag nakita natin
init scoreboard.
Ngunit ngayon pa lang update namin ang scoreboard dahil iyong binago namin ang
bilang ng mga puntos.
At dapat ito ngayon ipakita na pindutin namin ang isa higit pang break.
>> At sa wakas, kung pindutin namin ang isang brick gusto rin naming i-bounce.
Kaya sa wakas, i-pause namin kaya lang na ang bola ay hindi gumagalaw napakabilis na at kami
talaga maaari pindutin ito sa aming sagwan.
At iyon ang medyo magkano ito.
Kaya ngayon kami ay loop pabalik sa tuktok ng ito habang loop at magpapatuloy hanggang
alinman mawalan kami ng isang buhay o tumakbo kami sa labas ng bricks.
>> Ano ang mangyayari kapag nawala namin ang isang buhay?
Pagkatapos kami ay pagpunta upang lumabas ito habang loop, at kami makita kalooban loop-back up
sa tuktok ng panlabas habang loop.
Sa aling mga kaso, kami ay pagpunta sa Ipatupad ito set up muli.
At sa set up na ito ay pagpunta sa may amin maghintay para sa isang click, pagbawas aming numero
ng buhay, recenter ang bola, muling kalkulahin isang x at y bilis, at
pagkatapos ay ipagpatuloy ang laro.
>> At oo, na ay magpapatuloy hanggang sa alinman sa bricks nagtatapos up pagiging mas mababa sa
o katumbas ng zero -
sa kasong napanalunan namin ang laro -
o buhay ay mas mababa sa zero, kung saan kaso nawala namin ang laro.
Kaya, sa sandaling iyon ang kaso, masira out namin ng na habang loop, at maabot namin dito
kung saan kami ay pagpunta sa maghintay para sa mga click bago exiting ang laro upang ang
laro ay hindi agad-agad lamang isara sa amin.
At sa wakas ay makikita isara namin ang window at iyon ito.
Ang pangalan ko ay Rob, at ito ay Breakout.