This shows you the differences between two versions of the page.
|
pm:prj2023:vstoica:subwaysurfer [2023/05/29 00:15] cristina.tanase1501 [Software design] |
pm:prj2023:vstoica:subwaysurfer [2023/05/29 00:42] (current) cristina.tanase1501 [Download] |
||
|---|---|---|---|
| Line 12: | Line 12: | ||
| Pentru interfata utilizatorului va fi folosit un **afisaj grafic LCD**. | Pentru interfata utilizatorului va fi folosit un **afisaj grafic LCD**. | ||
| - | Utilizatorul va putea juca folosind doua **butoane** de directie (stanga, dreapta). Pentru restart va fi folosit un **senzor de atingere**. | + | Utilizatorul va putea juca folosind doua **butoane** de directie (stanga, dreapta). Pentru tragerea de gloante in obstacole va fi folosit un **senzor de atingere**. |
| - | Daca jucatorul ajunge la FINISH, se vor aprinde **leduri** de culoare verde. Daca pierde jocul, se vor aprinde **leduri** rosii. | + | In timpul jocului se va aprinde un **LED** de culoare verde. Daca pierde jocul, se va aprinde un **LED** rosu. |
| =====Schema bloc===== | =====Schema bloc===== | ||
| Line 35: | Line 35: | ||
| =====Software design===== | =====Software design===== | ||
| - | Codul a fost implementat in ArduinoIDE. M-am folosit de bibliotecile SPI.h si TFT.h pentru LCD. | + | Codul a fost implementat in ArduinoIDE. M-am folosit de bibliotecile SPI.h si TFT.h pentru LCD. |
| | | ||
| - | Functii: | + | Functii: |
| - | * drawRunner() : Afiseaza player-ul pe ecran - dreptunghiul verde | + | * **drawRunner()** : Afiseaza player-ul pe ecran - dreptunghiul verde |
| - | * drawObstacle() : Afiseaza obstacolul pe ecran - dreptunghi rosu | + | * **drawObstacle()** : Afiseaza obstacolul pe ecran - dreptunghi rosu |
| - | * updateRunner() : Actualizeaza pozitia player-ului - il misca in functie de apasarea butoanelor stanga/dreapta | + | * **updateRunner()** : Actualizeaza pozitia player-ului - il misca in functie de apasarea butoanelor stanga/dreapta |
| - | * updateObstacle() : Actualizeaza pozitia obstacolului, care se apropie de player. Cand iese din ecran, va fi repozitionat aleatoriu la inceput si creste scorul player-ului. | + | * **updateObstacle()** : Actualizeaza pozitia obstacolului, care se apropie de player. Cand iese din ecran, va fi repozitionat aleatoriu la inceput si creste scorul player-ului. |
| - | * shootBullet() : Tragerea glontului e activata de atingerea senzorului. Glontul pleaca din pozitia player-ului in momentul tragerii. | + | * **shootBullet()** : Tragerea glontului e activata de atingerea senzorului. Glontul pleaca din pozitia player-ului in momentul tragerii. |
| - | * drawBullet() : Afiseaza glontul pe ecran - un dreptunghi mic albastru. | + | * **drawBullet()** : Afiseaza glontul pe ecran - un dreptunghi mic albastru. |
| - | * updateBullet() : Acutualizeaza pozitia glontului, deplasandu-l spre directia din care vin obstacolele. Daca glontul iese din ecran este dezactivat. Daca glontul atinge obstacolul, obstacolul dispare (este repozitionat la inceput) si creste scorul | + | * **updateBullet()** : Acutualizeaza pozitia glontului, deplasandu-l spre directia din care vin obstacolele. Daca glontul iese din ecran este dezactivat. Daca glontul atinge obstacolul, obstacolul dispare (este repozitionat la inceput) si creste scorul |
| - | * checkCollision() : Verifica daca player-ul se ciocneste de obstacol. In cazul coliziunii scade numarul de vieti. Cand se termina vietile, se afiseaza ecranul "Game Over" alaturi de scor. | + | * **checkCollision()** : Verifica daca player-ul se ciocneste de obstacol. In cazul coliziunii scade numarul de vieti. Cand se termina vietile, se afiseaza ecranul "Game Over" alaturi de scor. |
| - | * displayScore() : Afiseaza permanent scorul si numarul de vieti in timpul jocului. | + | * **displayScore()** : Afiseaza permanent scorul si numarul de vieti in timpul jocului. |
| - | * setup() : initializeaza ecranul TFT, configureaza pinii de intrare si iesire | + | * **setup()** : initializeaza ecranul TFT, configureaza pinii de intrare si iesire |
| - | * loop() : Programul principal. Verifica in bucla daca senzorul tactil e atins pentru declansarea glontului. Actualizeaza player-ul, obstacolul, glontul si scorul si verifica coliziunile intre obiecte. | + | * **loop()** : Programul principal. Verifica in bucla daca senzorul tactil e atins pentru declansarea glontului. Actualizeaza player-ul, obstacolul, glontul si scorul si verifica coliziunile intre obiecte. |
| - | {{:pm:prj2023:vstoica:pm_schema02.png?450|Schema}} | + | {{:pm:prj2023:vstoica:diagramapm_.png?450|Schema}} |
| + | |||
| + | ===== Download ===== | ||
| + | Surse: {{:pm:prj2023:vstoica:endless_antoniatanase.zip|Endless_game}} | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||