Endless runner - Antonia Tanase

Introducere

Proiectul este o implementare a unui joc Subway Surfer 2D. Jocul consta in evitarea unor obstacole prin deplasarea player-ului in stanga sau dreapta, pana la atingerea liniei de finish.

Descriere generala

Pentru interfata utilizatorului va fi folosit un afisaj grafic LCD. Utilizatorul va putea juca folosind doua butoane de directie (stanga, dreapta). Pentru tragerea de gloante in obstacole va fi folosit un senzor de atingere. In timpul jocului se va aprinde un LED de culoare verde. Daca pierde jocul, se va aprinde un LED rosu.

Schema bloc

Schema bloc

Hardware design

Piese necesare:

  • Arduino Uno
  • Ecran LCD 1.8” SPI
  • Fire
  • Rezistente
  • Breadboard
  • 2 x LED RGB
  • Butoane
  • Senzor de atingere

Schema electrica

Schema

Software design

Codul a fost implementat in ArduinoIDE. M-am folosit de bibliotecile SPI.h si TFT.h pentru LCD.

Functii:

  • drawRunner() : Afiseaza player-ul pe ecran - dreptunghiul verde
  • drawObstacle() : Afiseaza obstacolul pe ecran - dreptunghi rosu
  • 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.
  • 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.
  • 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.
  • displayScore() : Afiseaza permanent scorul si numarul de vieti in timpul jocului.
  • 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.

Schema

Download

Surse: Endless_game

Bibliografie/Resurse

pm/prj2023/vstoica/subwaysurfer.txt · Last modified: 2023/05/29 00:42 by cristina.tanase1501
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