Razvan-Iulian BOGHIU (67371) - Joc Car Racing Game

Autorul poate fi contactat la adresa: razvan.boghiu@stud.acs.upb.ro

Grupa 343C2.

Introducere

Proiectul consta in implementarea unui joc pe un display LCD. Va exista o masina desenata pe un display ce se va putea deplasa stanga-dreapta. Vor exista 4 butoane ce vor actiona ca dispozitive de intrare. Utilizarea butoanelor sus-jos va mari sau va micsora viteza de deplasare a masinii. Jocul se va sfarsi atunci cand va aparea o coliziune intre masini.

Consider alegerea acestui proiect ca fiind una potrivita, deoarece implica utilizarea laboratoarelor, lucru ce duce la o mai buna intelegere a materiei atat ca parte de hardware, cat si ca parte software.

Hardware Design

Lista piese necesare:

  • butoane;
  • display;
  • placuta;
  • fire mama-mama pentru realizarea conexiunilor dintre placuta si ecran;

Software Design

Mediul de dezvoltare folosit:

  • Sublime Text pentru dezvoltarea codului
  • Eagle pentru realizarea schemelor electrice
  • HIDBootFlash pentru încărcarea programului pe placuta

Biblioteci folosite:

Funcții folosite:

  • init_buttons() - pentru initializarea butoanelor (setare intrare si activare rezistenta de pull-up)
  • check_pressed_up_button(), check_pressed_down_button(), check_pressed_left_button(), check_pressed_right_button() - pentru verificare daca butonul respectiv este apasat
  • generateNr(const int nMin, const int nMax) - generare numar aleator si modificare variabila “time” ce reprezinta seed-ul de fapt
  • draw_player (Car player) - desenare masina player
  • draw_enemy (Car_enemy enemy) - desenare masina inamici
  • delay_ms(unsigned int milliseconds) - functie ce permite utilizarea de _delay_ms cu o variabila ce nu mai trebuie sa fie constanta (cum e in cazul _delay_ms)
  • start_game() - afisare ecran de inceput
  • game_over() - afisare ecran in caz de terminare joc
  • collision_detector(Car_enemy enemies[MAX_ENEMIES],uint8_t enemies_active[MAX_ENEMIES],Car player) - detectare coliziuni intre player si inamici
  • main() - initializarea variabilelor si bucla principala a programului ce utilizeaza functiile amintite mai sus

Rezultate Obtinute

Jocul functioneaza cum mi-am propus initial, cu exceptia unor mici buguri ce tin de software si au ramas nerezolvate din cauza lipsei de timp.

Concluzii

Am reusit sa termin proiectul si sa implementez ceea ce mi-am propus, in ciuda unor probleme hardware legate de placuta de baza care mi-au intarziat mult implementarea software a proiectului.

Download

Jurnal

  • 11 aprilie - Alegere proiect
  • 21 aprilie - Finalizare schema bloc si lista de piese
  • 4 mai - Finalizare schema electrica si lipirea placutei de baza, dar nu functiona corespunzator
  • 14 mai - Rezolvare problema placuta (2 diode si mufa USB arse)
  • 17 mai - Lipire butoane si display pe placa de dezvoltare
  • 22 mai - Finalizare software si practic, finalizarea proiectului

* Documentația în format PDF

pm/prj2019/imatesica/343.txt · Last modified: 2021/04/14 17:07 (external edit)
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