ROB BOWDEN: Hi. Sunt Rob. Vă întrebați cum să pună în aplicare acest joc? Ei bine, hai să izbucni soluția de personal. Deci, hai prima lui capul în jos pentru a init funcții pe care le-am spus să să pună în aplicare în primul rând. În primul rând o vom arunca o privire la ea este de inițializare zbaturi. În regulă, astfel amintiți-vă că ne-o dorim zbaturi să fie centrat exact în axa x. Deci, avem nevoie să ne dăm seama în cazul în care ar trebui să meargă. Având în vedere lățimea de bord - care este hash, de asemenea, de sus definit în sus - avem nevoie pentru a scădea din lățimea zbaturi și se împarte la 2, astfel încât Centrul paletei este în centrul de bord. Amintiți-vă că x-coordonate se referă la colțul din stânga sus al paletei, și așa mai departe acest lucru este exact acolo unde vrem să fie. Y-și coordoneze nu conteaza la fel de mult pentru că putem plasa ea ori de câte ori ne-o dorim. Așa că am instantierea zbaturi, ne-am stabilit culoarea neagră, ne-am stabilit umple la True așa că este o completat dreptunghi, și ne-am apoi adăugați-l la fereastra și întoarce- zbaturi. Și asta e tot pentru inițializarea zbaturi. O să fie similare pentru inițializare tablou de bord. Așa că am de gând pentru a inițializa eticheta, vom seta culoarea la gri deschis - puteți alege orice Vreau - vom seta fontul pentru sans serif 48 - ar putea alege, de asemenea, tot ce vrei - vom adauga la fereastra. Acum, aceasta trimite în spate nu este cu adevărat necesar, este doar în cazul în care ceva altfel se întâmplă să se suprapună eticheta. Apoi, atunci când vom folosi de detectare a coliziunilor, Detectare Coliziunea va detecta alta lucru înainte de a se detectează eticheta. Dar că într-adevăr nu ar trebui să afecteze ne în acest program. În cele din urmă, ne-am acest tablou de bord actualizare Funcția pe care am scris. Deci, haideți să aruncăm o privire la asta. Acum, aici vom vedea ceva care este aproape identice cu ceea am văzut în label.c. Deci, avem o etichetă - un tampon caracter de 12 caractere, care este suficient doar să se ocupe de orice întreg, negativ sau pozitiv. Apoi, vom folosi sprintf pentru a copia subliniază în care tampon. Deci, s aceasta conține un șir de caractere care reprezintă numărul de puncte. În cele din urmă, ne-am stabilit eticheta pentru că șir. Și atunci avem nevoie pentru a centra eticheta în cazul în care am trecut de la nouă la 10 punctele și l-am schimbat. Așa că am calcula y coordonatele x și etichetei care va obține lățimea și înălțimea a ferestrei. Deși, am putea, de asemenea, pur și simplu utilizați constante Lățime și Înălțime hash definit sus. Am obține, de asemenea, lățimea și înălțimea etichetei și decalajul care de la 2 la centru. Și apoi vom folosi Set Locație a efectiv pune-l în acea locație. Deci, asta e pentru inițializare tablou de bord. OK. Bilă astfel de inițializare va fi foarte asemănător a init padelele, de asemenea. Vedem aici că suntem folosind newgoval în scopul de a instantia o nouă minge. Și aici vom folosi de 2 ori raza ca lățimea balonului, și două ori raza ca înălțimea mingea. Acum, de asemenea, pentru newgoval, x și y-și coordoneze care trecem în va să se refere la partea din stânga sus bile, care este de fapt în afara mingea în sine. Deci, în scopul de a obține mingea exact centrat în bord, avem nevoie pentru a trece Lățimea împărțit la 2 pentru centru, și apoi scade în raza a împinge centrul real al mingea în centrul de bord. Și vom face exact același lucru pentru axa y, cu excepția utilizării înălțimea în loc de lățime. Astfel că pune mingea în centru. Și acest instanțiază mingea, setați culoare la negru, completați mingea, apoi în cele din urmă se adaugă la fereastra și întoarce-l. Și asta e tot pentru inițializarea mingea. Deci, acum, haideți să aruncăm o privire la inițializare cărămizi, care este puțin mai mult complicat, dar e destul de similar cu init zbaturi. Acum, în primul rând trebuie să ne dăm seama lățimea fiecărei cărămizi. Amintiți-vă că avem o constantă numită apeluri care specifică Numărul de coloane din cărămizi pe care le avem. Deci, vom determina lățimea unui singur cărămidă prin luarea lățimea din întreaga tablă, scăzând din mărimea gap noastre - care este hash definit până sus și se referă cu numărul de pixeli care trebuie să fie între fiecare cărămidă - și astfel vom avea un total de ori decalaj invită pixeli goale într-un un singur rând. Și care se vor referi, de asemenea, la unele gol pixeli la stânga și la dreapta a coloana din stânga și dreapta cărămidă coloană. Astfel scade acele pixeli goale ne lasă cu un număr de pixeli, care cărămizi sunt de fapt, folosind. Și apoi vom împărți prin apeluri pentru a obține numărul de pixeli per cărămidă. Deci, aici vom defini o matrice care doar specifică culorile pe care le doresc pentru fiecare rând de cărămizi. Dacă am fi avut mai multe rânduri de cărămizi decât Culorile pe care le specificați, vom vedea că vom doar buclă înapoi în jurul și folosesc roșu din nou, iar apoi portocaliu și galben și așa mai departe. Astfel, ca indicii spec. set-p, suntem va bucla peste toate rândurile și coloane din cărămizi. Dar, înainte de buclă ne pe coloane, ne-am a se vedea aici că suntem Specificarea poziția y a fiecărei cărămizi în acel rând special. Am putea muta, de asemenea, acest lucru în a doua pentru bucla, dar apoi ne-ar fi doar face calculul de peste si peste din nou, atunci când nu avem nevoie să. Astfel poziția y de caramida se întâmplă să fie marja, care este hash definit până sus și doar se referă la spațiu între partea de sus a consiliului de administrație și începerea toate cărămizi. Și vom adăuga la faptul că rândul că suntem pe ori înălțimea de un caramida individ plus diferența adică între fiecare cărămidă. Deci, acest lucru este, de asemenea, un vertical decalaj între fiecare cărămidă. Astfel că ne dă y-coordonata din caramida. Deci, aici vom calcula x-coordonata de cărămidă. Acum, avem decalaj împărțit la 2, deoarece, amintiți-vă înainte, i-am spus că la partea stângă a consiliului, vom pentru a lăsa un spațiu mic. Deci, diferența de împărțit la 2 este acel spațiu. Și apoi vom adăuga la faptul că coloana că suntem pe vremuri lățime plus decalaj, în cazul în care lățimea este cantitatea de spațiu ca o singură cărămidă preia și atunci decalaj este spațiul între fiecare cărămidă. Astfel că calculează x-coordonate din caramida. Acum, avem nevoie doar pentru a instantia cărămidă având în vedere că x și y-coordonata folosind lățime care am calculat pentru fiecare înălțime cărămidă, iar pauza de care este hash top definit în sus. Ne-am stabilit culoarea de caramida. Observați ne folosind culori nostru matrice și vom trece în rândul care au fost pe culori Num mod care va face ne înfășurați în jurul înapoi la roșu dacă am au mai multe rânduri decât culori. În cele din urmă, vom umple din caramida culoare și adăugați-l la fereastra. Și asta e tot. Deci, asta este pentru toate noastre Metode de inițializare. Acum, avem nevoie să te uiți la asta în timp ce buclă pe care a trebuit să umple inch Deci, aici vom vedea că acest lucru este în timp ce noastre buclă, care va continua până la jocul este de peste, care fie mijloace ne-am alerga afară de vieți sau ne-am alerga afară de cărămizi. Deci, primul lucru pe care trebuie este un Așteptați pentru clic. Deci, jocul ne așteaptă pentru a efectiv faceți clic inainte ca mingea incepe sa se miste. Și apoi vom merge pentru a decrementa vieți. Deci, dacă am avut trei vieți, acum suntem până la două vieți, suntem cu ajutorul nostru a treia de viata. Mergem la centrul mingea. Deci, acum, acest lucru nu este cu adevărat de gând să ajute ne pe prima viața pe care o juca deoarece mingea este deja de gând să s-au centrat de când ne-am instanțiată-l. Dar vom vedea când vom termina prin a pierde de viață și buclă înapoi în jurul, atunci suntem de gând să doriți să recentra mingea de la partea de jos a plăcii înapoi la centru. Deci, acum aici avem nevoie pentru a genera x viteza de minge. Și, ca pe spec., suntem folosind d rand 48 pentru a genera un numar aleator pentru a specifica viteza. Suntem adăugând unul pentru că de când ne-am doresc viteza în intervalul de unul a doua în loc de zero la unu. În cele din urmă, suntem cu ajutorul d rand 48 din nou în Pentru a determina dacă mingea se va muta la stânga sau dreptul de a începe. Deci, d rand 48 returnează un număr aleator între zero și unu, și deci de a cere în cazul în care este mai mic de 0,5, avem un 50 50 șansă de a schimba viteza de mingea să fie negativ. În final, am stabilit viteza verticală mingea a fi doar o constantă. Am ales trei. Și acum avem o altă buclă. Deci, aceasta bucla interioară este va continua. Observați aici, în timp ce cărămizi este mai mare decât zero - așa că, dacă am alerga afară de cărămizi, ne-am a câștigat jocul și putem izbucni din această buclă - și toate Ia y Ball mai puțin decât înălțimea minus 2 ori raza. Deci, despre ce este recunoașterea este în cazul în care mingea se intampla sa dribleze pe paleta, în caz în care ați pierdut o viață. Privind în interiorul acest lucru pentru bucla avem de verificare pentru un eveniment de mouse. Și astfel, dacă există un eveniment șoarece, care înseamnă că vrem să verificați la vedea dacă mouse-ul a fost mutat, și dacă mouse-ul a fost mutat, vrem să avem zbaturi ține pasul cu mouse-ul. Deci, pentru a face acest lucru, va calcula noua Poziția de zbaturi, care se va pentru a apuca poziția mouse-ului - care prinde poziția utilizând eveniment pe care ne-au fost trecute - și apoi vom scădea în Lățimea pale împărțit la 2, așa sejururi cu zbaturi centrate pe mouse-ul în loc de partea stângă a paletei stau centrat. Deci, acum avem, de asemenea, doresc să fie siguri că ne-am nu merg pe partea stanga sau dreapta parte a consiliului. Și așa că aici suntem doar a verifica dacă paletă ar fi de pe partea stângă a bord, doar stick l în partea stângă. Și aici vom verifica dacă zbaturi ar fi pe partea dreaptă a bord, doar stick- pentru partea dreaptă. Și, în sfârșit, ne-am stabilit de fapt locația zbaturi. Acum, dacă nu a fost o mișcare mouse-ului, asta înseamnă că vom doriți să mutați mingea. Și așa avem deja x și viteza y a balonului și așa ne-am muta. Dar acum ne-o dorim pentru a detecta câteva lucruri. Deci, aici suntem detectarea dacă am lovit, fie în partea stângă sau dreaptă a bord, vrem mingea pentru a sări. Și astfel, în acest caz, ne-am stabilit x viteza la x viteza negativ. În cazul în care mingea a lovit partea de sus a consiliului, apoi ne-am dori, de asemenea saritura mingea. Dar acum vrem să se schimbe viteza y. Observați că nu avem o condiție pentru mingea a lovit partea de jos a bord de la care a fost deja capturat aici, în această buclă în timp. În cele din urmă, ne-o dorim pentru a detecta unele coliziuni în care în cazul în care a lovit mingea fie zbaturi sau caramida, ne-o dorim de a face unele lucruri speciale de caz. Deci, dacă a existat o coliziune, în care obiecte de caz nu va fi nulă, apoi, dacă obiectul lovit cu zbaturi, ne-ar Vreau doar pentru a sări mingea. Și aici, de asemenea, ne-am stabilit locul de mingea deasupra zbaturi. Observați că luăm poziția x de mingea și doar reutilizarea că. Dar aici ne apropiem poziția y de zbaturi și mutarea mingea deasupra paletei. Acesta este un caz special, astfel încât mingea nu a lovit cu zbaturi și apoi, înainte de a fi capabil să se miște de pe paleta, o altă buclă merge în jurul și ea crede că e încă pe panoul și astfel încât viteza y devine setat înapoi la negativ, iar apoi mingea doar un fel bastoane de viguros pe paleta. Deci, dacă nu ne-am lovit cu zbaturi, apoi ne-am dori, de asemenea pentru a verifica dacă ne-am lovit de caramida. Și astfel încât acesta este modul în care putem verifica pentru a vedea dacă ne-am lovit o caramida. Avem nevoie pentru a verifica acest lucru, deoarece ne-am putea s-au lovit de fapt, eticheta și noi Nu doriți să eliminați eticheta. Deci, dacă ne-am lovit o caramida, putem elimina că caramida de la fereastra, descreșterea numărul nostru de cărămizi, incrementa nostru număr de puncte, iar acum trebuie să actualizeze tabloul de bord, care este exact la fel cum am văzut mai înainte, când am văzut init tablou de bord. Dar acum suntem doar actualizarea tablou de bord de când ne-am schimbat număr de puncte. Și ar trebui să afișeze acum că ne-am lovit unul mai mult pauză. Și, în sfârșit, în cazul în care ne-am lovit o caramida De asemenea, ne-o dorim pentru a sări. Deci, în final, ne oprim doar pentru ca mingea nu se mișcă foarte repede și ne-am se poate lovi de fapt, cu zbaturi nostru. Și asta e destul de mult. Deci, acum ne-ar buclă înapoi la partea de sus a această buclă în timp și va continua până fie vom pierde o viață sau ne-am alerga afară de cărămizi. Ce se întâmplă dacă am pierde o viață? Apoi, vom ieși din acest timp buclă, și vom vedea voința buclă copie de rezervă în partea de sus a buclei timp exterior. În cazul în care, vom executa acest înființat din nou. Și acest lucru înființat va trebui să așteptăm pentru un clic, decrement numărul nostru de vieți, recentra mingea, recalcula o viteză x și y, și apoi reia jocul. Și astfel, care va continua până fie cărămizi sfârșește prin a fi mai puțin sau egal cu zero - în cazul în care ne-am castigat jocul pe care - sau viața este mai mică decât zero, în care caz ne-am pierdut jocul. Deci, odată ce acesta este cazul, ne-am izbucni de care buclă în timp ce, și ajungem aici unde am de gând să aștepte pentru clic înainte de a ieși de joc, astfel încât joc nu doar imediat închide pe noi. Și, în sfârșit, vom închide fereastră și că este. Numele meu este Rob, iar acest lucru a fost Breakout.