Raphael-Florian COJOCARU (66930) - Retro Car

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

* Proiectul Retro Car doreste implementarea unei copii fidele a jocului cu acelasi nume regasit pe vechile console de jocuri facand parte din familia Game Boy sau Brick Game.

* Scopul proiectului este de a realiza un joc interactiv, care sa imite originalul cat mai bine si sa ofere o experienta interesanta si captivanta.

* Ideea din spatele proiectului a fost realizarea unui joc simplu dar totusi popular, care sa trezeasca interesul utilizatorilor.

* Proiectul este util pentru mine deoarece imi ofera sansa sa realizez un prim proiect hardware pe cont propriu, iar pentru utilizatori este util deoarece este usor de folosit si interesant.

Descriere generală

Descrierea modului de functionare:
* jocul va avea la baza o sosea de o latime prestabilita, simuland o autostrada circulata
* pe parcursul jocului se vor genera masini random, scopul jocului fiind evitarea acestora cat mai eficient, folosindu-se butoanele de directie stanga-dreapta
* de asemenea, jucatorul poate mari viteza propriului autoturism folosind un al treilea buton, de accelerare sau poate pune jocul pe pauza, folosind un al patrulea buton
* jucatorul va porni cu un numar de 3 vieti, care reprezinta totodata numarul maxim de vieti disponibile pe toata durata jocului
* la coliziunea cu un alt autoturism jucatorul va pierde o viata, jocul terminandu-se atunci cand toate cele 3 vieti sunt pierdute
* pe parcursul jocului, atunci cand se inregistreaza o perioada suficient de lunga fara nicio coliziune, se va genera un bonus constand intr-o viata extra
* dificultatea va creste treptat de-a lungul jocului, viteza de deplasare si densitatea autoturismelor marindu-se



Schema bloc:

Hardware Design

Lista piese utilizate

Nume No bucati
Placa de baza 1
Microcontroller ATMega324 1
Butoane 4
LCD 84×48 1
Rezistente -
Condensatoare -
Conectori -


Schema electrica:

Software Design

Pentru realizarea proiectului, am utilizat urmatoarele medii de dezvoltare si librarii:

Scrierea pe LCD se face utilizand o matrice de pixeli.
Am folosit o structura de date pentru a mentine starea inamicilor: alive, posx si posy.

Inamicii sunt generati pornind in marginea de sus a ecranului si se deplaseaza in jos, pana cand:

  • ating marginea de jos a ecranului
  • intra in coliziune cu masina jucatorului

Jucatorul porneste cu un numar de 4 vieti, care de-a lungul jocului se actualizeaza astfel:

  • -1 daca jucatorul intra in coliziune cu o masina inamica.
  • +1 daca jucatorul colecteaza un bonus extra-life.

Numarul maxim de vieti este 5.

Fiecare nivel are un numar de inamici prestabiliti care trebuie depasiti.

Odata cu trecerea unui nivel:

  • numarul de inamici se dubleaza pentru nivelul urmator.
  • viteza inamicilor si viteza propriei masini se dubleaza, crescand astfel dificultatea.

Se folosesc 3 ecrane principale:

  • ecranul de pornire, cand utilizatorul este invitat sa inceapa jocul prin apasarea oricarei taste.
  • ecranul de succes pentru un nivel.
  • ecranul de pierdere a jocului.

Rezultate Obţinute

Imagini proiect finalizat:

  • Pagina de introducere.
  • Level 1.
  • Level 1.
  • Pagina terminare level cu succes.
  • Placuta in forma finala.

Prezentare video YouTube: https://youtu.be/Mht8fIe-pfk

Concluzii

Mi s-a parut un proiect deosebit fata de cele realizate anterior in facultate, util prin natura sa educativa si totodata amuzant si captivant. Ma bucur ca am avut ocazia sa realizez un asemenea proiect hardware+software de la 0. :-D

Download

* Download arhiva cod: src_retro.rar

Jurnal

* 05.05.2017 - finalizare placuta hardware.
* 08.05.2017 - prima verificare a display-ului folosind o biblioteca pentru Nokia 3310.
* 10.05.2017 - crearea jocului pornind de la biblioteca mentionata anterior.
* 19.05.2017 - adaugare functionalitati de baza: deplasarea jucatorului, generarea inamicilor folosind un algoritm de tip random si deplasarea acestora.
* 22.05.2017 - continuare software: implementarea coliziunilor cu inamicii, vietile jucatorului, nivelurile si paginile afisate pentru castigarea/pierderea unui nivel.
* 24.05.2017 - finalizare software, adaugare bonus extra-life si testare generala.

Bibliografie/Resurse

* Laboratoarele si datasheet-ul Atmega324PA.
* Libraria pentru Nokia 3310 LCD - http://www.quantumtorque.com/content/view/32/37/ .

  • Documentația în format PDF
pm/prj2017/ideaconu/retro-car.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