Differences

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

Link to this comparison view

pm:prj2024:sseverin:andrei.zipis2406 [2024/05/26 14:09]
andrei.zipis2406 [Jurnal]
pm:prj2024:sseverin:andrei.zipis2406 [2024/05/26 23:57] (current)
andrei.zipis2406 [Bibliografie/Resurse]
Line 39: Line 39:
  
  
-Componente Software +Display-ul LCD și pinii pentru buton și LED sunt configurați. 
-Biblioteci Utilizate+Se alege aleatoriu un personaj între dinozaur și cavaler, iar caracterul este creat pe display-ul LCD.
  
-Codul folosește biblioteca LiquidCrystal_I2C ​pentru a controla display-ul LCD prin interfațI2CAceastă bibliotecă facilitează comunicarea și afișarea informațiilor pe LCD+Codul verifică dacă jocul s-a terminat. Dacă da, așteaptă apăsarea butonului pentru restart. 
-Definiții de Pini+Starea butonului este citită ​pentru a detecta dacă jucătorul ​apăsat pentru săritura personajului. 
 +Timpul actual este verificat pentru a determina dacă săritura personajului trebuie să se termine
 +Poziția obstacolului este actualizată periodic, iar obstacolul se deplasează spre stânga.
  
-În cod sunt definite următoarele pini:+Personajul este afișat în poziția corectă (pe sol sau în aer, în funcție de starea de săritură). 
 +Obstacolul este desenat pe ecran în poziția sa curentă.
  
-    BUTTON_PIN: Pinul digital conectat ​la butonutilizat pentru a sări și a restarta jocul+Dacă obstacolul ajunge ​la poziția personajului și acesta nu sarese detectează o coliziune, jocul se termină și se afișează mesajul "​CRASH!"​ împreună cu scorul
-    ​LED_PIN:​ Pinul digital conectat la LEDutilizat ​pentru ​feedback vizual.+Dacă obstacolul trece de personajscorul crește și, dacă atinge 10 puncte, LED-ul se aprinde. 
 +Viteza obstacolelor crește după atingerea a 10 puncte ​pentru ​a crește dificultatea jocului.
  
-Variabile ​și Constante+Dacă jocul s-a terminat, apăsarea butonului va reseta jocul, alegând din nou aleatoriu între dinozaur ​și cavaler și repornind totul de la zero.
  
-Jocul utilizează mai multe variabile și constante pentru a gestiona starea jocului:+===== Rezultate Obţinute =====
  
-    -baseLineLinia pe LCD unde dinozaurul se deplasează. +{{:pm:prj2024:sseverin:yuji.jpg?200|}}
-    -jumpLineLinia pe LCD unde dinozaurul sare. +
-    -obstacleDelayÎntârzierea inițială pentru mișcarea obstacolelor,​ determinând viteza lor. +
-    -obstaclePosition:​ Poziția curentă a obstacolului pe ecran. +
-    -score: Punctajul acumulat de jucător. +
-    -obstacleCharCaracterul curent utilizat pentru a reprezenta obstacolul.+
  
-Funcții Principale +demo: https://www.youtube.com/watch?v=K1f1O7SKSa4
-setup() +
- +
-Funcția setup() inițializează componentele hardware și software necesare pentru jocAceasta inițializează display-ul LCD, setează pinii pentru buton și LED și configurează starea inițială a jocului apelând funcția initializeGame(). +
-loop() +
- +
-Funcția loop() reprezintă bucla principală a jocului. Aceasta verifică dacă jocul s-a terminat și așteaptă restartarea în caz afirmativ. Funcția citește starea butonului pentru a determina dacă jucătorul dorește să sară, actualizează poziția obstacolelor la intervale regulate și redesenează ecranul pentru a reflecta starea curentă a jocului. De asemenea, funcția verifică coliziunile dintre dinozaur și obstacole. +
-initializeGame() +
- +
-Funcția initializeGame() resetează variabilele și starea jocului la început sau după un restart. Aceasta curăță display-ul LCD, resetează variabilele de stare (isJumping, gameOver, obstaclePosition,​ score), resetează temporizările (lastObstacleTime,​ obstacleDelay) și oprește LED-ul. +
-startJump() +
- +
-Funcția startJump(unsigned long currentMillis) inițiază săritura dinozaurului. Aceasta setează variabila isJumping la true și calculează timpul când săritura se va termina (jumpEndTime). +
-endJump() +
- +
-Funcția endJump() finalizează săritura dinozaurului. Aceasta setează variabila isJumping la false și șterge dinozaurul de pe linia de sărit. +
-moveObstacle() +
- +
-Funcția moveObstacle(unsigned long currentMillis) actualizează poziția obstacolului. Aceasta șterge obstacolul de la poziția curentă, decrementează poziția obstacolului și resetează poziția acestuia atunci când iese din ecran, actualizând punctajul. De asemenea, alege un caracter aleatoriu pentru noul obstacol și ajustează viteza obstacolelor în funcție de punctaj. +
-drawScreen() +
- +
-Funcția drawScreen() desenează pe ecran starea curentă a jocului. Aceasta șterge pozițiile anterioare ale dinozaurului și obstacolului și desenează dinozaurul în poziția corectă, fie pe linia de sărit, fie pe linia de bază. Obstacolul este desenat la poziția sa curentă. +
-checkCollision() +
- +
-Funcția checkCollision() verifică dacă dinozaurul a colizionat cu un obstacol. Dacă obstacolul este la poziția dinozaurului și acesta nu sare, funcția afișează un mesaj de coliziune și punctajul final, și setează variabila gameOver la true. +
-checkForRestart() +
- +
-Funcția checkForRestart() verifică dacă butonul este apăsat pentru a restarta jocul. Dacă butonul este apăsat, funcția așteaptă eliberarea butonului și apoi apelează initializeGame() pentru a restarta jocul. +
-===== Rezultate Obţinute ===== +
- +
-<note tip> +
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +A fost un proiect fun, partea de soft a fost considerabil mai greu de implementat decat partea de hard.
 +Ma bucur ca il pot folosi mai departe sa ma joc ceva atunci cand raman fara net.
 ===== Download ===== ===== Download =====
  
Line 110: Line 79:
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +https://www.tinkercad.com/​dashboard 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+ 
-</note>+https://​www.arduino.cc/​en/​Guide/ArduinoUno
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
  
pm/prj2024/sseverin/andrei.zipis2406.1716721747.txt.gz · Last modified: 2024/05/26 14:09 by andrei.zipis2406
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