Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:avaduva:jumpgame [2021/06/02 20:51]
andrei.jelea
pm:prj2021:avaduva:jumpgame [2021/06/03 10:08] (current)
andrei.jelea
Line 9: Line 9:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Jucatorul trebuie sa sara peste diversele obstacole ​ce vor aparea din fata si va primi puncte ​pentru fiecare obstacol evitat. Pe masura ce acesta ​inainteaza, obstacolele ​vin din ce in ce mai repede. Jocul se termina cand jucatorul obtine 1000 de puncte.+Jucatorul trebuie sa sara peste obstacolele ​ce vor aparea din fata si va primi puncte ​pe masura ce inainteaza. Obstacolele ​vin din partea dreapta, iar scorul este afisat ​in coltul din dreapta sus.
  
  
Line 39: Line 39:
   * Logica implementarii:​   * Logica implementarii:​
  
-Actiunea jocului ​se desfasoara ​doar pe primele 2 linii si primele 16 coloane ale LCD-ului. Jucatorul se va afla mereu pe coloana 1 si pe liniile 1 sau 2(daca alearga este pe linia 2, iar daca se afla in saritura este pe linia 1).+Actiunea jocului ​are loc doar pe primele 2 linii si primele 16 coloane ale LCD-ului. Jucatorul se va afla mereu pe coloana 1 si pe liniile 1 sau 2(daca alearga este pe linia 2, iar daca se afla in saritura este pe linia 1). La un moment de timp, fiecare bloc(care are 5x8 = 40 biti) din cele 2 x 16 = 32 va avea o configuratie anume din urmatoarele:​ 
 +  * Bloc obstacol complet 
 +  * Bloc obstacol inceput 
 +  * Bloc obstacol sfarsit 
 +  * Bloc gol 
 +  * Bloc jucator in alergare 
 +  * Bloc jucator in saritura completa(linia1) 
 +  * Bloc jucator la jumatatea sariturii, partea de jos(linia2) 
 +  * Bloc jucator la jumatatea sariturii, partea de sus(linia1) 
 +Inregistrarile tuturor configuratiilor se realizeaza prin functia createChar, din biblioteca LiquidCrystal.h,​ care asociaza un index fiecarei configuratii de 5x8 biti si astfel, afisarea se va face cu functia print, folosind ca argument doar indexul respectiv. 
 +Functiile folosite sunt: 
 +  * init_graphics:​ se initializeaza configuratiile posibile si se memoreaza cu functia createChar; se configureaza blocurile initiale, toate fiind de tipul "Bloc gol"​. 
 +  * slide_blocks:​ functie pentru deplasarea in stanga a obstacolelor 
 +  * draw_hero: functie ce determina configuratia blocurilor de pe coloana eroului pe baza actiunii acestuia si printeaza toate blocurile; de asemenea, se verifica si daca are loc coliziunea jucatorului cu obstacolele. 
 +  * setup: se initializeaza pinii si tipurile de configuratii 
 +  * loop: este implementata logica jocului - la fiecare frame se apeleaza functiile descrise de mai sus
  
 +===== Rezultate obtinute =====
  
 +{{ :​pm:​prj2021:​avaduva:​webp.net-resizeimage.jpg |}}
  
 +{{ :​pm:​prj2021:​avaduva:​webp.net-resizeimage_1_.jpg |}}
 +
 +===== Concluzii =====
 +
 +Consider ca a fost un proiect foarte interesant, din care am avut multe de invatat, atat pe partea de hardware cat si pe cea de software si rezultatul este unul satisfacator.
 +
 +===== Jurnal =====
 +
 +  * Etapa1
 +
 +Alegerea temei proiectului
 +
 +  * Etapa2
 +
 +Achizitionarea pieselor necesare si a ustensilelor utilizate pentru lipirea pinilor LCD-ului
 +
 +  * Etapa3
 +
 +Asamblarea efectiva a partii hardware si scrierea codului
 +
 +===== Download =====
 +
 +{{:​pm:​prj2021:​avaduva:​andrei_jelea_333cc_proiectpm.zip|}}
 +
 +===== Demo =====
 +
 +https://​drive.google.com/​file/​d/​1D_baxJYIpgqKhzp0HHltPS_vNCKCK_yl/​view?​usp=sharing
 +
 +===== Bibliografie si Resurse =====
 +
 +[[https://​www.youtube.com/​watch?​v=JTL3vzvTZac]]
 +
 +[[https://​www.arduino.cc/​en/​Reference/​LiquidCrystal]]
 +
 +[[https://​www.arduino.cc/​en/​Reference/​LiquidCrystalCreateChar]]
  
  
pm/prj2021/avaduva/jumpgame.1622656294.txt.gz · Last modified: 2021/06/02 20:51 by andrei.jelea
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