Autorul poate fi contactat la adresa: Login pentru adresa
„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.
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).
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 |
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.
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
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.
Arhiva cu sursele jocului:
space_impact_ts.zip
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