Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul ales de mine consta in implementarea unui joc asemanator celebrului Chicken Invaders pe un LCD color, joc ce are ca scop distrugerea tuturor inamicilor, controland o nava ce se poate deplasa stanga-dreapta si care lanseaza proiectile. Proiectul reprezinta o ocazie perfecta de a pune in aplicare cunostintele dobandite pana acum, in acelasi timp realizand ceva amuzant.
La pornirea jocului, pe ecran va fi afisat un mesaj, apoi utilizatorul va putea alege intre cele doua nivele de dificultate. In modul Easy, inamicii sunt mai putini, iar in modul Hard acestia pot lansa si ei proiectile si sunt mai numerosi. Controlul navetei va fi realizat prin intermediul a doua butoane (stanga/dreapta),existand si un buton de tragere folosit pentru lansarea proiectilului. Dupa fiecare runda de inamici distrusi, acestia vor reaparea, dar vor fi mai greu de doborat. Jocul se termina cand jucatorul isi pierde vietile, la final afisandu-se scorul si un mesaj. Apasand butonul de RESET, jucatorul poate incepe o runda noua.
Descrierea codului aplicatiei:
Am dezvoltat proiectul utilizand IDE-ul Programmer's Notepad, in mediul WinAVR. Pentru a urca codul pe placuta de dezvoltare am folosit HIDBootFlash.
Intrucat am stricat primul LCD (oops ) a trebuit sa cumpar altul. Pentru interfatarea cu acest nou display LCD am folosit o biblioteca implementata de un student in anii anteriori.
Detalii de implementare: Am inceput prin a implementa functii pentru desenarea navetei, a chickenilor si a gloantelor. In continuare, am creat structuri pentru chickeni, naveta si gloante, in ele retinand coordonatele acestora. Chickenii sunt salvati intr-o matrice.
La apasarea butoanelor LEFT/RIGHT, naveta isi schimba pozitia, iar cand se apasa SHOOT se lanseaza proiectile. Butonul EXIT incheie jocul prin afisarea unui mesaj.
Am implementat doua timere:
Pentru efect dramatic si suspans, ledul de pe placa clipoceste si el la 2 secunde.
Pentru a simplifica verificarea coliziunilor, am ales sa incadrez atat naveta, cat si chickenii in dreptunghiuri. Astfel, o coliziune poate fi detectata prin verificarea daca un dreptunghi (fie el chicken, glont sau nava) contine unul din punctele ce definesc un alt obiect.
In urma dezvoltarii proiectului, pot spune ca am fixat cunostintele dobandite in cadrul laboratoarelor de PM si am dobandit cunostinte noi, cum ar fi:
Desi proiectul nu a fost finalizat, am reusit sa il aduc intr-un stadiu in care sa fie functional.