Table of Contents

Adrian-George GĂVAN (87693) - Brick Breaker Game


Date de contact

Găvan Adrian-George

Introducere

Proiectul constă în realizarea unui joc de tipul “Brick Breaker”. A fost unul din jocurile mele preferate ca și copil așa că m-am gândit că va fi interesant să implementez o versiune a acestui joc. Proiectul va avea un accelerometru pentru control și un LCD pentru vizualizarea desfășurării jocului.

Brick Breaker este un joc Arcade, în general single player. Jocul a fost numit inițial Breakout și a fost dezvoltat în 1976. Schimbarea majoră a apărut în 2007 când a fost lansat jocul sub denumirea de “Brick Breaker”. Acesta a fost primul joc creat pentru telefonul BlackBerry.

Descriere generală

Scopul jocului este ca jucătorul să distrugă toate cărămizile din nivelul corespunzător. Pentru a face acest lucru, jucătorul va utiliza o bilă care va fi lansată de pe o placă. Bila se poate mișca în diferite direcții, iar o căramidă va fi distrusă când bila va intra în contact cu ea.

Greutatea jocului vine din faptul că jucătorul trebuie să nu lase bila să iasă din ecran. Aceasta poate ieși doar prin latura pe care se află și placa jucătorului. Jucătorul trebuie să controleze placa (să o miște stânga dreapta) astfel încât să nu lase bila să treacă de placă și să o redirecționeze către diverse căramizi. În funcție de nivel, un jucător va avea un număr limitat de vieți. Când bila iese din joc se va pierde o viață. Jucătorul pierde jocul dacă rămâne fără vieți.

Jocul va avea mai multe nivele: cărămizi mai rezistente, bila se va mișca mai rapid sau vor fi mai puține vieți. De asmenea, pe parcursul diferitelor nivele se vor întâlni diverse puteri (cum ar fi o placă mai mare sau o viață în plus).

Schemă bloc:


Descriere schemă bloc

Hardware Design

Listă componenete:

Schemă electrică:

LCD-ul și buzzerul sunt montate ambele pe aceeași placă de test.
Cele 5 butoane și accelerometrul sunt montate pe aceeasi placă, de aici putând fi controlată placa, dacă se pune pauză sau se iese din joc, se pot alege diverse opțiuni etc.
Buzzerul este conectat la portul D, LCD-ul este conectat la portul B, Accelerometrul este conectat la portul C și butoanele sunt conectate la portul A.
GND-ul tras din portul A este tras din pin-ul numit VCC deoarece pe placa de bază denumirea pinilor VCC și GND pentru portul A a fost inversată.

Software Design

Jocul începe prin afișarea unui mesaj de “Bun venit”. Se va apăsa orice buton pentru a trece mai departe.
Jocul are 3 meniuri pentru opțiuni:

Primul meniu este cel pentru selectarea dificultății nivelului. Jocul are 3 nivele:

Se vor folosii butoanele “Up” și “Down” pentru a naviga printre nivele. Opțiunea curentă va avea în dreptul ei ”← Selected”. Se va apăsa “Enter” pentru a selecta nivelul.
Al doilea meniu este cel pentru selectarea modului de control. Jucătorul poate alege să utilizeze butoanele “Left” și “Right” de pe placa de control pentru a muta placa din joc sau poate să utilizeze accelerometrul, prin înclinarea plăcii de control în stânga sau dreapta. La fel ca și mai sus, se alege opțiunea dorită și apoi se trece la următorul meniu.

Din ultimul meniu jucătorul poate alege una din cele 3 variante pentru culoarea plăcii și a bilei.
După ce s-au ales opțiunile, jocul va începe iar pe ecran vor fi afișate elementele nivelului corespunzător.
Jucătorul va începe mereu cu 3 vieți, iar viețile vor putea fi văzute pe peretele de sus al nivelului.
Jocul va fi câștigat dacă jucătorul va distruge toate cărămizile. În funcție de nivel, cărămizile au 1,2 sau 3 vieți (și culori diferite în funcție de numărul de vieți curent).

Jucătorul va pierde dacă va rămâne fără vieți (caderea bilei pe lângă placă sau prin diverse bonusuri).
Cărămizile pot avea 1,2 sau 3 vieți ⇒ vor fi colorate cu Galben (1 viață), Albastru (2 vieți) și Roșu închis (3 vieți). Când o cărămidă va fi lovită, fie va fi ștearsă, fie i se va scădea viața și i se va modifica culoarea.

Placa se poate mișca stânga dreapta (până la pereți), iar bila are 3 direcții: verticală, oblic la stânga și oblic la dreapta. Bila va lua o direcție în funcție de locul în care lovește placa și în funcție de cum va ricoșa din pereți sau cărămizi.

Jocul are și opțiunea de pauză: se poate apăsa “Down/P” pentru a pune pauză sau pentru a anula pauza.
Jocul are și opțiunea de escape, astfel încât cand se apasă butonul “Up/Esc” în timpul jocului, jocul se va termina și ne vom întoarce la primul meniu.
Pentru a face totul mai interesant, au fost adăugate și bonusuri în joc. Sunt 6 tipuri de bonusuri în total:

Bonusurile sunt atașate random unor cărămizi. Când o cărămidă este distrusă și are un bonus, acesta va începe să cadă spre partea inferioara a ecranului.
Daca cade pe langa placă atunci acesta dispare. Dacă este prins cu placa, atunci se va executa efectul lui.

Orice nivel va avea cate 2 bonusuri din fiecare din primele 5 tipuri de bonusuri din listă. Nivelele mediu și hard vor avea și un bonus de tipul “Moarte instantanee”.
Acest bonus ii ia toate viețile jucătorului ⇒ jucătorul pierde instant. Dacă nivelul este hard, atunci vor mai fi în plus 2 bonusuri pentru luare a unei vieți, pentru a face lucrurile mai grele.

Când se pierde o viață, bonusurile aflate în cădere vor fi automat distruse și efectul bonusurilor de tipul “placa mai mare”, “placa mai mică” sau “bila de neoprit” vor fi anulate.
Când un jucător câștigă sau pierde se va afișa un mesaj corespunzător pentru 7 secunde, iar apoi ne vom întoarce înapoi la meniul pentru selectarea nivelului.

Rezultate Obținute

Rezultatele au fost cele dorite: am reușit să creez un joc funcțional și să realizez tot ce mi-am propus.
Este un joc distractiv cu diverse opțiuni, nivele și bonusuri. Am reușit să fac și partea hardware să funcționeze, lucru de care imi era cel mai frică.
Jucătorul poate alege daca vrea să utilizeze butoanele pentru mișcarea plăcii sau accelerometrul. Dacă doreste să utilizeze accelerometrul, se va ține placa paralel cu podeaua și se va înclina spre stânga sau spre dreapta.

Un demo al proiectului poate fi descărcat de aici: demo_brickbreaker.zip.

Concluzii

Download

Arhiva cu fișierele proiectului poate fi găsită aici: 334ca_gavanadriangeorge_brickbreaker.zip

Jurnal

Bibliografie/Resurse