Dragoș-Viorel STURZU (66897) - Space Impact

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

  • Implementarea jocului Space Impact, un sidescrolling shoot 'em up, gasit pe telefoane Nokia vechi.
  • Spre deosebire de versiunea clasica, impartita pe nivele, jocul va avea un mod survival, a carui dificultate va creste pe parcurs.
  • Am pornit de la ideea implementarii unui joc clasic, pe care multi dintre noi probabil l-au jucat.

Descriere generală

Jucatorul va controla o nava spatiala prin intermediul a 4 butoane directionale, precum si a unui buton pentru foc. Jocul va consta in supravietuirea impotriva unor valuri de inamici care vin din directia opusa si care la randul lor trag cu proiectile. Dificultatea jocului va creste atat prin numarul de inamici prezenti la un moment dat pe ecran, cat si prin cresterea vitezei lor. Jocul nu va avea un sfarsit, scopul fiind obtinerea unui scor cat mai mare.

Schema bloc:

space_impact_sch.jpg

Hardware Design

Lista piese:

  • Placa de baza (cu microcontroller ATmega324)
  • Display LCD cu Controller PCD8544
  • Placa de test
  • Butoane
  • Conectori

Schema electrica:

Software Design

Pentru dezvoltare am folosit Programmer's Notepad (si dupa ce m-a enervat, Sublime Text), iar pentru compilare, WinAVR. Am folosit o biblioteca pentru interfata cu LCD-ul (vezi resurse #1) si pe care am extins-o cu cateva functii pentru desenarea elementelor grafice. Datorita bibliotecii folosite (care nu permite afisarea caracterelor la o pozitie Y oarecare) am fost nevoit sa modific logica jocului. Exista astfel 5 linii pe care jucatorul si inamicii se pot deplasa, iar pentru a garanta ca jucatorul nu este prea puternic, poate exista un singur proiectil la un moment dat. La coliziunea unui inamic cu jucatorul, sau cand un inamic ajunge in marginea din stanga a ecranului, jucatorul pierde o viata, iar jocul se termina cand jucatorul pierde toate vietile. Pentru realizarea logicii jocului am implementat:

  • miscarea jucatorului, inamicilor si proiectilelor
  • aparitia de inamici noi, random
  • detectie de coliziuni
  • afisare elemente grafice (sprite-uri pentru nave, heads-up display)
  • ecran de start si de game over

Pentru realizarea sprite-urilor am folosit un utilitar pentru a converti imagini bitmap in vectori de caractere (vezi resurse #2).

Rezultate Obţinute

Desi am deviat putin de la ideea originala, am obtinut un joc cu mecanici retro asemanator intr-o oarecare masura celui propus initial.

Concluzii

  • A iesit…ceva
  • As putea zice ca a fost destul de distractiv sa realizezi un proiect de la 0 … dar nu
  • Embedded-ul nu e de mine

Download

Jurnal

  • Saptamana 8 - am ales tema
  • Saptamanile 10-12 - am lipit componentele pe placa de baza, respectiv pe placa de test
  • Saptamana 13 - am dezvoltat software-ul

Bibliografie/Resurse

pm/prj2017/ddragomir/space-impact.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