Flappy Bird

  • Autor: Apostol Ruxandra-Ecaterina
  • Grupa: 336-CA

Introducere

  • Proiectul are ca scop implementarea modificata a jocului Flappy Bird in care pasarea trebuie ajutata sa ajunga la cuib.
  • Utilizatorul poate controla pasarea Faby care se deplaseaza in permanenta la dreapta si este atrasa gravitational de sol. Pentru a putea continua, aceasta trebuie sa evite coliziunea cu solul si cu tevile pereche care au cate un gol de dimensiuni egale, pozitionat aleatoriu.
  • Jocul va fi implementat pe 3 niveluri. Pentru fiecare viteza si rata de aparitie a tuburilor vor creste, iar aspectul jocului se va schimba. La finalul ultimului nivel, pasarea ajunge la cuib si jucatorul castiga.
  • Ideea proiectului a venit din dorinta de a implementa un joc usor si cu un posibil final fericit pe un dispozitiv cu care se pot juca si copiii fara grija de a nu suna pe cineva sau de a nu sterge un document important din grseala.
  • Consider ca prin alegerea acestei tema imi voi putea valorifica cunostintele dobandite in cadrul laboratoarelor intr-un mod placut si util.

Descrierea generala

Schema bloc a proiectului

  1. Jocul incepe odata cu apasarea ecranului sau a butonului de start si este afisat pe un display LCD TFT.
  2. In timpul jocului daca butonul de start sau ecranul sunt apasate pasarea va zbura in sus, altfel aceasta va fi atrasa de sol.
  3. Odata cu avansarea in timp, nivelul de dificultate marcat de cele 3 leduri si afisat pe ecran va creste.
  4. Pentru fiecare pereche de tuburi evitata jucatorul va primi un punct. Scorul este afisat in coltul stanga-jos al ecranului.
  5. Jocul se termina cad are loc o coliziune (fie cu solul, fie cu tuburile) sau cand este terminat nivelul 3 si pasarea Faby ajunge la cuibul ei.
  6. Pentru a reseta jocul, utilizatorul poate apasa pe butonul de restart.

Hardware design

Lista componentelor
  • Breadboard
  • Arduino Uno
  • LCD TFT 2.4 inch
  • Butoane Push
  • Leduri colorate
  • Rezistente
  • Fire tata-tata
  • Cablu USB
Ecranul LCD TFT 2.4 inch
  • In realizarea jocului Flappy Bird am ales sa renunt la conectarea pinilor de pe ecran destinati cardului SD cu cei de pe placa Arduino Uno, pentru a ii pastra pe cei din urma liberi. Acestora le-am atribuit ulterior rolul de a controla datele primite de la butonul de start si aprinderea ledurilor pentru niveluri.

Schema electrica

Schema electrica a proiectului

Software Design

Proiectul a fost realizat folosind ca unic mediu de dezvoltare Arduino IDE, iar sursa se regaseste in fisierul incercare.ino. Pentru a putea manipula ecranul lcd tft 2.4 inch am folosit biblioteca SPFD5408. Am modificat in fisierul SPFD5408_Adafruit_TFT_LCD.cpp, din cadrul acestei biblioteci, afisarea de la stanga la dreapta pentru identificatorul display-ului meu(nu de la dreapta la stanga cum era initial) si folosirea sistemului RGB (nu BGR). De asemenea, am folosit biblioteca EEPROM pentru tratarea unor eventuale erori.

Rezultate obținute

  • Desi la inceputul proiectului nu aveam de gand sa implementez si controlul jocului prin touchscreen, am descoperit ca este mult mai usor decat ma asteptam si am ales sa il folosesc pentru a da jocului o nota de actualitate si a il face mai distractiv.
  • Jocul are o acuratete destul de buna, ciocnirea cu tevile sau cu solul fiind detectate din timp, iar nivelul de dificultate crescand treptat.
  • Toate formele si componentele vizuale din acest proiect sunt realizate prin desenarea mai multor dreptunghiuri (prin functia fillRect), astfel incat sa capete aspectul dorit.
  • In animatia pasarii am optat pentru a sterge desenul acesteia de la vechile coordonate si a o desena din nou in locul dorit. Din cauza cadrelor de framework care nu sunt preluate de catre ecran suficient de repede incat acest proces sa nu fie sesizabil, exista momente de scurta durata in care pasarea Faby este transparenta.
  • La sectiunea Bibliografie/Resurse se afla un link catre demo-ul proiectului.

Concluzii

  • Desi la inceput am fost putin sceptica in legatura cu acest proiect, intrucat partea de hardware nu a fost niciodata punctul meu forte, am ajuns sa lucrez la el de placere.
  • Am putut sa imi aprofundez cunostintele obtinute la Proiectarea cu microprocesoare dar si sa imi amintesc cateva notiuni din Electronică digitală.
  • In final a fost una din putinele teme la care am avut posibilitatea sa fiu creativa, fiind constransa doar de alegerile componentelor si cred ca singura tema unde am putut sa facem ceva fizic.

Download

Jurnal

25 aprilie 2021:

  • alegere tema proiect
  • scriere introducere
  • descriere generala (impreuna cu schema bloc)
  • completarea listei cu componentele hardware

23 - 25 mai 2021:

  • scrierea codului
  • testarea si repararea eventualelor erori

27 mai 2021:

  • construire schema electrice
  • prezentare proiect in cadrul laborator

28 mai 2021:

  • descriere software design
  • completare rezultate obtinute
  • concluzii

Bibliografie/Resurse

pm/prj2021/apredescu/flappybird.txt · Last modified: 2021/05/28 23:25 by ruxandra.apostol
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