This shows you the differences between two versions of the page.
pm:prj2024:rvirtan:t-rex-game [2024/05/01 15:09] patricia.sirboiu |
pm:prj2024:rvirtan:t-rex-game [2024/05/28 19:05] (current) patricia.sirboiu |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== T-Rex Game ====== | ====== T-Rex Game ====== | ||
{{ :pm:prj2024:rvirtan:dino_game_chrome.png| }} | {{ :pm:prj2024:rvirtan:dino_game_chrome.png| }} | ||
- | |||
===== Introducere ===== | ===== Introducere ===== | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | * Sirboiu Patricia-Octavia | ||
+ | * 332CD | ||
+ | * Indrumator: Razvan Virtan | ||
+ | </note> | ||
Proiectul reprezintă o replică a jocului T-Rex Game din Chrome offline mode, în care jucătorul preia controlul asupra unui dinozaur și trebuie să sară peste obstacolele care apar pe drum. Scopul este să supraviețuiești cât mai mult timp posibil și să obții un scor cât mai mare. | Proiectul reprezintă o replică a jocului T-Rex Game din Chrome offline mode, în care jucătorul preia controlul asupra unui dinozaur și trebuie să sară peste obstacolele care apar pe drum. Scopul este să supraviețuiești cât mai mult timp posibil și să obții un scor cât mai mare. | ||
Line 18: | Line 24: | ||
==== Schema bloc ==== | ==== Schema bloc ==== | ||
- | {{:pm:prj2024:rvirtan:pm_schema_t_rex_game.png|}} | + | {{:pm:prj2024:rvirtan:pm_schema_t_rex_game.png?600|}} |
+ | |||
+ | ===== Hardware Design ===== | ||
+ | |||
+ | ==== Diagramă de conectare ==== | ||
+ | |||
+ | {{:pm:prj2024:rvirtan:diagrama_finala.png?600|}} | ||
+ | |||
+ | {{:pm:prj2024:rvirtan:cablaj_ig.jpeg?600|}} | ||
+ | |||
+ | ===== Software Design ===== | ||
+ | |||
+ | <note tip> | ||
+ | Link la repo-ul de Git: https://github.com/patricia43/T-Rex-Game | ||
+ | </note> | ||
+ | |||
+ | === Mediu de dezvoltare === | ||
+ | * Arduino IDE | ||
+ | |||
+ | === Biblioteci folosite === | ||
+ | * Wire.h, LiquidCrystal_I2C.h - pentru comunicarea cu display-ul LCD | ||
+ | * SD.h - pentru citire / scriere pe cardul de memorie | ||
+ | |||
+ | === Detalii de implementare si fluxul programului === | ||
+ | |||
+ | Programul este impartit pe stari, intre care programul comuta, conform diagramei de mai jos: | ||
+ | |||
+ | {{:pm:prj2024:rvirtan:diagrama_pm_software_4_.png?450|}} | ||
+ | |||
+ | Fiecare stare din diagrama este implementata in propria sa functie (de ex. startMenu() pentru meniul de start, gameOver() pentru meniul de game over etc.) | ||
+ | In functia loop(), programul doar verifica starea curenta si apeleaza functia corespunzatoare acesteia. | ||
+ | |||
+ | |||
+ | Din meniul de start, jucatorul are 3 optiuni: | ||
+ | * play, care il duce in joc. La finalizarea jocului, este afisat meniul de game over, dupa care, daca jucatorul curent a atins un nou high score personal, se va afisa clasamentul. | ||
+ | * select player, care il duce in meniul de user select, de unde poate naviga cu ajutorul butonaelor UP si DOWN prin lista tuturor utilizatorilor existenti si poate selecta cu butonul OK utilizatorul dorit. | ||
+ | * leaderboard, care il duce in clasament, unde poate naviga prin lista utlizatorilor (sortati dupa scor). Clasamentul este stocat pe un fisier text pe cardul SD, iar la fiecare actualizare a high score-ului unui jucator, el este suprascris astfel incat sa contina jucatorii sortati descrescator dupa scor. | ||
+ | |||
+ | Detalii gameplay: | ||
+ | |||
+ | Dificultatea jocului creste treptat pe masura ce scorul creste, prin reducerea decalajului dintre obstacole si prin cresterea vitezei. Aceasta este gestionata prin intermediul unui contor, care mareste nivelul de dificultate la intervale regulate. Acest lucru inseamna ca obstacolele se apropie mai rapid, ceea ce forteaza jucatorul sa aiba reactii mai rapide si o coordonare mai buna. | ||
+ | |||
+ | |||
+ | ===== Bibliografie/Resurse ===== | ||
+ | |||
+ | <note> | ||
+ | * [[https://maxpromer.github.io/LCD-Character-Creator/|Desenare caractere custom pentru grafica jocului]] | ||
+ | * [[https://www.youtube.com/watch?v=xVC0X_PE_XE&ab_channel=techydiy|Configurare display LCD]] | ||
+ | </note> | ||