Differences

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

Link to this comparison view

pm:prj2024:rvirtan:robert-baceanu [2024/05/25 02:15]
robert.baceanu [Bibliografie/Resurse]
pm:prj2024:rvirtan:robert-baceanu [2024/05/25 15:34] (current)
robert.baceanu [Software Design]
Line 15: Line 15:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<​note ​tip>+<​note>​
 Următoarea schemă bloc arată toate modulele proiectului şi descrie modul în care acestea interacţionează. Următoarea schemă bloc arată toate modulele proiectului şi descrie modul în care acestea interacţionează.
 </​note>​ </​note>​
Line 32: Line 32:
 Modulul pentru citirea cardului SD foloseşte protocolul de comunicaţie SPI. Modulul Joystick foloseşte 3 conexiuni, două analogice (pentru măsurarea înclinaţiei joystick-ului pe axele Ox şi Oy, mişcând nava spaţială) şi una digitală (apăsarea butonului joystick-ului,​ ce va face ca nava să tragă cu proiectile). Modulul pentru citirea cardului SD foloseşte protocolul de comunicaţie SPI. Modulul Joystick foloseşte 3 conexiuni, două analogice (pentru măsurarea înclinaţiei joystick-ului pe axele Ox şi Oy, mişcând nava spaţială) şi una digitală (apăsarea butonului joystick-ului,​ ce va face ca nava să tragă cu proiectile).
  
-<​note ​tip>+<​note>​
 Următoarea schemă prezintă conexiunile necesare la nivel de schemă bloc. Următoarea schemă prezintă conexiunile necesare la nivel de schemă bloc.
 </​note>​ </​note>​
Line 38: Line 38:
 {{ :​pm:​prj2024:​rvirtan:​robert-baceanu:​schema_hardware_final.png?​400 |Schema Hardware}} {{ :​pm:​prj2024:​rvirtan:​robert-baceanu:​schema_hardware_final.png?​400 |Schema Hardware}}
  
-<​note ​tip>+<​note>​
 Schema de mai jos prezintă cablajul necesar realizării proiectului. Schema de mai jos prezintă cablajul necesar realizării proiectului.
 </​note>​ </​note>​
Line 44: Line 44:
 {{ :​pm:​prj2024:​rvirtan:​robert-baceanu:​schema_hardware_tinkercad_final.png?​400 |Schema Hardware Tinkercad}} {{ :​pm:​prj2024:​rvirtan:​robert-baceanu:​schema_hardware_tinkercad_final.png?​400 |Schema Hardware Tinkercad}}
  
-<​note ​tip>+<​note>​
 Mai jos, se poate vedea stadiul curent al proiectului la nivel hardware. Mai jos, se poate vedea stadiul curent al proiectului la nivel hardware.
 </​note>​ </​note>​
Line 70: Line 70:
 La alegerea opţiunii "​Leaderboard",​ jucătorului îi vor fi prezentaţi cei mai buni 3 timpi ai săi. Prima pagină afişează cel mai bun timp, în timp ce a doua pagină afişează timpii de pe locurile 2 şi 3. Atunci când jucătorul se află pe prima pagină, apăsarea butonului joystick-ului îl va întoarce în meniul principal. Clasamentul este stocat sub forma unui fişier text pe cardul SD, iar acesta este suprascris cu noile valori la fiecare actualizare. La alegerea opţiunii "​Leaderboard",​ jucătorului îi vor fi prezentaţi cei mai buni 3 timpi ai săi. Prima pagină afişează cel mai bun timp, în timp ce a doua pagină afişează timpii de pe locurile 2 şi 3. Atunci când jucătorul se află pe prima pagină, apăsarea butonului joystick-ului îl va întoarce în meniul principal. Clasamentul este stocat sub forma unui fişier text pe cardul SD, iar acesta este suprascris cu noile valori la fiecare actualizare.
  
-La alegerea opţiunii "​Play",​ jucătorul va avea de eliminat 5 valuri de nave extraterestre,​ unde fiecare nivel are un nivel de dificultate diferit (mai mulţi inamici/​inamici mai rapizi). La finalul celor 5 valuri, jucătorul primeşte un mesaj de victorie şi îi este calculat timpul în care a reuşit să elimine inamicii.+La alegerea opţiunii "​Play",​ jucătorul va avea de eliminat 5 valuri de nave extraterestre,​ unde fiecare nivel are un grad de dificultate diferit (mai mulţi inamici/​inamici mai rapizi). La finalul celor 5 valuri, jucătorul primeşte un mesaj de victorie şi îi este calculat timpul în care a reuşit să elimine inamicii.
   ​   ​
-Pentru desenarea spaţiului de joc, am împărţit la nivel logic rândurile display-ului în câte două rânduri mai mici, astfel obţinând o hartă de 16x4. La fiecare "​frame",​ este parcursă o matrice de 16x4 a căror valori indică ​daca spaţiul reprezintă nava jucătorului,​ o navă extraterestră,​ un proiectil sau un spaţiu liber.+Pentru desenarea spaţiului de joc, am împărţit la nivel logic rândurile display-ului în câte două rânduri mai mici, astfel obţinând o hartă de 16x4. La fiecare "​frame",​ este parcursă o matrice de 16x4 a căror valori indică ​dacă spaţiul reprezintă nava jucătorului,​ o navă extraterestră,​ un proiectil sau un spaţiu liber.
  
 Logica meniului principal este descrisă în funcţia loop(), care fie afişează meniul curent, fie apelează funcţia play(), unde este implementată logica jocului (funcţie care foloseşte, la rândul ei, alte funcţii menite să modularizeze structura codului pentru a fi uşor de urmărit). Logica meniului principal este descrisă în funcţia loop(), care fie afişează meniul curent, fie apelează funcţia play(), unde este implementată logica jocului (funcţie care foloseşte, la rândul ei, alte funcţii menite să modularizeze structura codului pentru a fi uşor de urmărit).
Line 79: Line 79:
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<​note ​tip+<​note>​ 
-Mai jos puteţi vedea poze ce surprind stadiul final al proiectului. ​<TODO poze, poate video cu demo>+Mai jos puteţi vedea poze ce surprind stadiul final al proiectului.
 </​note>​ </​note>​
  
-===== Concluzii =====+{{ :​pm:​prj2024:​rvirtan:​robert-baceanu:​stadiu_final.jpeg?​400 |Stadiu final}}
  
 +Piesele folosite în realizarea proiectului (placa de dezvoltare, breadboard-ul,​ modulele joystick şi SD) au fost lipite pe o placă de polistiren. În imagine este surprinsă o sesiune de gameplay.
 ===== Download ===== ===== Download =====
  
Line 93: Line 94:
  
 {{:​pm:​prj2024:​rvirtan:​robert-baceanu:​spaceinvaderscode.zip|SpaceInvadersCode.zip}} {{:​pm:​prj2024:​rvirtan:​robert-baceanu:​spaceinvaderscode.zip|SpaceInvadersCode.zip}}
-</​note>​ 
- 
-===== Jurnal ===== 
- 
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
 </​note>​ </​note>​
  
pm/prj2024/rvirtan/robert-baceanu.1716592545.txt.gz · Last modified: 2024/05/25 02:15 by robert.baceanu
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