This is an old revision of the document!


Joc dinozaur

Introducere

Grumezescu Rares 333CC

Acest proiect are ca scop realizarea unui joc cu un dinozaur care sare garduri. Jocul se afiseaza pe un ecran LCD I2C, unde va fi reprezentat un dinozaur care sare niste obstacole de forma unor garduri.

La momentul inceperii jocului, jucatorul are posibilitatea de a alege unul din cele 3 grade de dificultate ale jocului: Easy, Medium, Hard. Jocul consta din 3 nivele, care se succed in momentul in care jucatorul a ajuns la un scor suficient de mare.

Atat selectarea gradului de dificultate, cat si saritul gardurilor vor fi posibile prin apasarea unui buton existent pe breadboard.

Jucatorul are la dispozitie 3 vieti, pierzand cate una in momentul coliziunii cu un obstacol. Jocul contine si 3 LED-uri care se aprind in functie de numarul de vieti ramase. Cu cat vietile se imputineaza, cu atat ledurile se sting unul dupa altul, atentionand jucatorul in privinta numarului de vieti pe care le mai are.

In momentul in care player-ul se izbeste de un obstacol, un buzzer va suna, indicand coliziunea care tocmai a avut loc.

Jocul mai dispune si de un scor ce apare permanent pe ecran in coltul din dreapta sus, indicand scorul pe care jucatorul l-a obtinut pana in acel moment.

Descriere generală

Hardware Design

Schema electrica

Componente

  • 1 x Arduino Uno
  • 1 x Breadboard
  • 1 x Ecran LCD 1602 cu interfata I2C si Backlight Albastru
  • 1 x Buton
  • 3 x Led
  • 1 x Buzzer
  • 1 x Rezistenta(1K Ohmi) pentru buzzer
  • 4 x Rezistenta(220 Ohmi) pentru led-uri
  • 1 x Rezistenta(220 Ohmi) pentru buton
  • 3 x Fir Tata-Tata pentru led-uri
  • 4 x Fir Mama-Tata pentru ecranul LCD
  • 1 x Fir Tata-Tata pentru buton
  • 1 x Fir Tata-Tata pentru buzzer
  • 1 x Fir Tata-Tata pentru GND

Software Design

In interiorul functiei loop se apeleaza functia intro(), responsabila de alegerea nivelului de dificultate. Odata aleasa dificultatea, se va stabili si viteza cu care jocul va functiona, folosindu-se variabila “frame”. Tot in loop se face trecerea de la un nivel la altul, apelandu-se succesiv functiile level1(), level2() si level3(). De asemenea, in loop se tine si evidenta vietilor de care dispune player-ul, aprinzandu-se atatea led-uri cate vieti ramase mai are player-ul. Cand numarul de vieti ajunge la 0, atunci se afiseaza pe ecran mesajul “GAME OVER”.

Codul este impartit in mai multe functii, fiecare ocupandu-se de un alt aspect al functionarii lui.

Functia initializeGraphics(): initializeaza obiectele care vor aparea pe harta, creand caractere specifice ce se vor afisa repetitiv in fiecare cadru succesiv.

Functia drawHero() se ocupa de: desenarea jucatorului in fiecare ipostaza a jocului, stabileste daca jucatorul s-a lovit sau nu de un obstacol, respectiv actualizeaza si afiseaza scorul pe ecran.

Functiile level1(), level2(), level3(): sunt functii care seamana ca si functionalitate una cu alta; ele actualizeaza cadrele pe ecran si tot in interiorul lor se porneste buzzer-ul daca player-ul s-a lovit de un obstacol. Acestea primesc ca parametru un numar cu care, impreuna cu functia delay, vor reprezeta succesiuna cadrelor cu viteza corespunzatoare.

Functia intro(): se ocupa cu stabilirea dificultatii la care player-ul va juca.

Functiile loop() si setup() au aceeasi functionalitate ca si in laborator.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2022/cstan/500.1653682260.txt.gz · Last modified: 2022/05/27 23:11 by rares.grumezescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0