Table of Contents

Ioana-Teodora TICĂ (78550) - Vegan Invaders

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Vegans - such pesky little creatures! Gotta get rid of 'em all!

Mi-am propus sa implementez o varianta personala a jocului Space Invaders - with a little twist. Jucatorul va fi nevoit in acest caz sa lupte impotriva unui alt tip de invadatori: periculosii propovaduitori ai veganismului.

Scopul proiectului este punerea la incercare a notiunilor acumulate (sper eu) pana acum si amuzamentul celor care vor testa “produsul” final.

Reguli joc

Jucatorul are la dispozitie o naveta pe care o poate manipula prin intermediul unor butoane: doua pentru deplasarea stanga-dreapta si unul pentru atac. Pe parcursul a mai multor nivele cu diverse grade de dificultate, el trebuie sa inlature toti inamicii pe care ii intalneste in calea sa, ferindu-se in acelasi timp de atacurile lor. Pentru a salva omenirea de curentul hipster care o ameninta, el are la dispozitie trei vieti. La anumite momente ale jocului el poate intra in posesia unor power-ups care sa ii imbunatateasca atacul.

Descriere generală

Jocul va fi controlat prin intermedidul unor butoane si afisat pe un LCD. Optional, voi adauga un buzzer pentru redarea unei melodii de fundal.

Hardware Design

Schema:

Lista de componente:

Software Design

Joculetul a fost implementat pe Linux iar ca mediu de dezvoltare am folosit Atom, vim, avr-gcc si bootloadHID.

Detalii legate de joc:

- scopul este doborarea tuturor inamicilor si ferirea de atacurile lor;

- inamicii sunt navete spatiale in forma de banane si mere care ataca folosind proiectile in forma de frunze de spanac;

- jucatorul este reprezentat printr-o naveta clasica;

- acesta are posibilitatea sa se miste stanga-dreapta sau sa atace;

- la momentul de fata poate lansa un singur atac la un moment;

- este implementat pe 3 nivele de dificultate:

- la inceput se afiseaza un meniu din care se poate selecta dificultatea dorita;

- la finalul unui nivel, in cazul in care jucatorul iese invingator se afiseaza un meniu in care i se permite sa continue la urmatorul nivel sau sa se intoarca la meniul principal;

- in caz ca a pierdut, i se da posibilitatea de a reincerca nivelul curent.

Rezultate Obţinute

Concluzii

M-am distrat mult mai mult facand acest joc decat ma asteptam. Imi pare rau ca nu am reusit sa il aduc la timp la forma pe care mi-as fi dorit-o eu (inca exista cateva mici bug-uri si nu am reusit sa termin partea de power-ups).

Ce am invatat:

- e bine sa nu stai la inceput pe lucruri de finete pentru ca s-ar putea sa ai niste surprize neplacute (am investit destul de mult timp in realizarea unor iconite simpatice si la sfarsit nu le-am putut folosi pe toate din cauza lipsei de memorie);

- ar fi fost bine daca as fi pus memorie suplimentara, deoarece asa poate rezolvam problema de mai sus sau as fi putut pune o melodie de fundal;

- cateodata componentele vin cu bug-uri/feature-uri la care nu te astepti (nu am reusit sa folosesc toata lungimea LCD-ului in modul portrait).

Download

veganinvaders.zip

Jurnal

20 Aprilie - Hello, World!

27 Aprilie - Am inceput lipirea componentelor si am constatat ca multe ne lipsesc.

3 Mai - Marea lipeala continua; cumparatul de componente la fel.

5 Mai - Am realizat schema de bloc pentru milestone-ul 2.

10 Mai - Placa de baza e gata. Mama, mama, mi-au venit si LCD-ul si restul jucariilor.

17 Mai - Entuziasmata si plina de entuziasm vin la laborator ca sa lipesc restul pieselor. Aflu ca mai am nevoie de inca ceva ca sa nu prajesc LCD-ul ⇒ abort mission.

18 Mai - Intr-un tur de forta majora, stau pe parcursul a doua laboratoare sa termin de lipit tot. LCD-ul si Buzzer-ul merg si sper sa fi lipit bine si butoanele pentru ca nu a mai fost timp sa le testez.

22 Mai - Ma apuc sa scriu partea de software. Reusesc sa implementez un meniu minimal, design-ul caracterelor si hotarasc flow-ul jocului.

23 Mai - Inca mai am de lucru la logica joculetului. Voi updata maine acea sectiune cand termin.

24 Mai - Descopar cu mare tristete ca m-am entuziasmat prea tare cand mi-am facut iconita Broccoli-Boss si nu o pot folosi din cauza ca ocupa multa memorie.

25 Mai - Am terminat de updatat pagina de Wiki si imi fac curaj sa merg la PM Fair sa prezint.

Bibliografie/Resurse

Resurse:

- cod laboratoare;

- biblioteca LCD (https://community.atmel.com/projects/ili9341-library-drive-22-tft-displayderived-adafruit-tft-library-ili9340-type-controller);

- proiecte asemanatoare din anii trecuti pentru inspiratie (http://cs.curs.pub.ro/wiki/pm/prj2016/ddragomir/igorparvan, http://cs.curs.pub.ro/wiki/pm/prj2016/csoare/spaceinvaders).

* Documentația în format PDF