Ștefan TONCU (67060) - Space Impact

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

„Space Impact” este un joc in care utilizatorul controleaza o nava in spatiu; el trebuie sa se fereasca de inamici si sa invinga un inamic puternic - boss.

Scopul proiectului este unul recreativ, dar si de dezvoltare a reflexelor: atentie distribuita, coordonare.

Ideea proiectului este inspirata din jocul clasic cu acelasi nume de pe vechile telefoane Nokia.


Descriere generală



Pe ecranul LCD se va afisa nava utilizatorului, care se misca pe directia Y (sus-jos), controlata prin doua butoane: UP & DOWN.
Pe parcursul jocului vor aparea o serie de inamici care se indreapta spre nava utilizatorului.
Daca inamicii ating nava, atunci jocul se termina si este afisat scorul inregistrat pentru jocul curent.
Jucatorul trebuie sa distruga de navele inamice si sa invinga bossul de la final. Pentru a scapa de inamici, se poate folosi arma navei: la apasarea unui al treilea buton, nava trage un proiectil pe directia X la care se afla la momentul apasarii butonului (trage proiectilul de la stanga, de unde se afla nava in dreapta, pana la marginea dreapta a ecranului sau, daca atinge un inamic, acesta moare si proiectilul dispare).


Schema bloc:


Hardware Design

Lista piese

Nume No bucati
Placa de baza 1
Microcontroller ATMega324 1
Butoane 4
LCD Nokia 5110 - 84×48 1
Condensatoare 5
Rezistente 8
LED 2
Dioda Zener 2
Conector USB B Cvilux 1
Soclu Microcontroller 1


Schema electrica:


Software Design

Am folosit urmatoarele programe:
HIDBootFlash: hidbootflash
Programmer's Notepad: www.pnotepad.org
avr-gcc: download.html

Librarie NOKIA 3310 - 37

Pentru interactiunea cu LCD-ul am folosit libraria mentionata de mai sus.
Scrierea pe LCD este facuta prin intermediul unui buffer: o matrice. Astfel, toate componentele jocului sunt stocate in aceasta matrice, updatata la fiecare pas al buclei repetitive while(1) din main si scrisa pe lcd dupa ce sunt efectuate toate modificarile de la pasul curent.

De asemenea, mi-am definit cateva structuri de date pentru: nava proprie si a inamicilor, gloante.
Pentru acestea am scris functii care sa le initializeze.
Am mai scris functii pentru: desenare nava, inamici, background, vieti si pentru verificarea coliziunilor.

Rezultate Obţinute

Space Impact este un joc complet functional, are 5 niveluri delimitate de lupta cu un BOSS, care are viata mult mai mare.

Imagini rezultat final:









Video YouTube: ZJ1WminJ_xs

Concluzii

In concluzie, proiectul a fost unul educativ, dar destul de anevoios initial.
Mi-a placut ca am pornit de la zero, am cumparat piesele si le-am montat singur pe placuta. Dupa multa munca, am terminat si jocul pe lcd si in sfarsit sunt multumit de rezultat.
Cel mai mult mi-a placut insa ca pentru prima data am avut ocazia sa corelez cunostintele de software cu hardware concret si ca am putut realiza un joc complet pe care l-am incarcat pe un microcontroller.

Download

Arhiva cu sursele jocului:
space_impact_ts.zip

Jurnal

  • 05.05.2017 - am terminat de lipit componentele pe placuta
  • 08.05.2017 - verificare functionalitati si legare lcd Nokia
  • 11.05.2017 - primul “hello world” pe display
  • 15.05.2017 - creare versiune de baza: nava si inamici
  • 18.05.2017 - introducere miscare nava si inamici;
    • coliziunea nava-inamici
  • 21.05.2017 - creare gloante si coliziune cu inamici
  • 23.05.2017 - creare boss si nivele
  • 24.05.2017 - finalizare joc

Bibliografie/Resurse

Laboratoarele PM
Librarie NOKIA 3310 http://www.quantumtorque.com/content/view/32/37/ - poate fi folosita si pentru lcd-ul folosit de mine (sunt echivalente)



Documentația în format PDF

pm/prj2017/ideaconu/2995.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