Victor Nicuşor CIUREL - Joc RPG

Autorul poate fi contactat la adresa: victor.ciurel@gmail.com

Introducere

Proiectul consta intr-un joc de tipul RPG (role playing game), realizat cu un LCD grafic. Am vrut sa fac acest proiect deoarece intotdeauna am vrut sa fac un joc si sunt un mare fan al jocurilor de tip RPG, dar nu imi place foarte mult sa lucrez cu grafica avansat. Astfel, proiectul mi s-a parut o ocazie buna sa incerc sa fac un joc simplu 2D.

Initial, am vrut sa il fac sa fie destul de avansat, dar din cauza problemelor cu hardware-ul si timpului de programare scurt, am ales sa fac ceva mult mai simplist. Ideea initiala, era sa fie un joc care sa se aproprie de feature-urile jocului The Elder Scrolls: Skyrim. Dupa simplificare, se aproprie mai mult de jocuri de tipul Pokemon.

Proiectul a fost util pentru ca am lucrat destul de mult cu hardware-ul si am inteles mai bine cum functioneaza componentele electronice. Am vazut cum se face design-ul unei placute si corodarea acesteia. Mi-a placut sa lucrez la soft si sa inteleg mai bine cum sa modularizez jocul si cum sa interactionez cu hardware-ul. Proiectul le-ar putea fi util altor oameni care vor lucra cu LCD-uri grafice sau care vor intampina probleme similare mie.

Descriere generală

Jucatorul interactioneaza cu butoanele pentru interactiona cu jocul. In cadrul meniurilor, deplasarea se face cu tastele Up, Down, si selectia se face cu butonul de Action. In cadrul jocului propriu zis, miscarea caracterului se face cu ajutorul tastelor Up, Down, Left, Right. Pentru in intra in meniu se foloseste tasta Esc.

Hardware Design

Lista de piese:

  • 1 x LCD grafic RG12864b
  • 12 x butoane
  • 32 fire mama-mama

Software Design

Jocul este scris in limbajul C si este compilat cu ajutorul avr-gcc. Mediul de dezvoltare a fost vim.

Pentru a permite lucrul cu resursele grafice am folosit driver-ul NT7108 pentru modulul LCD si biblioteca GLI. Biblioteca GLI este scrisa in limbajul de programare C si ofera suport pentru afisarea imaginilor si a font-urilor prin intermediul driver-ului NT7108.

Pentru design am folosit suita de aplicatii GLI Tools. Din cadrul suitei, aplicatia GLI_BitmapEditor permite desenarea unei imagini si generarea automata a codului aferent pentru afisarea acesteia pe dispozitiv. Aplicatia GLI_FontGenerator permite alegerea unui font si a unui interval din setul de caractere ASCII standard si generarea automata a codului aferent pentru afisarea acestuia pe dispozitiv.

Rezultate Obţinute

Concluzii

E distractiv sa faci un joc nu foarte complex grafic, dar partea hardware poate fi o problema destul de mare, mai ales daca datasheet-ul nu este foarte explicit.

Pentru oricine vrea sa faca un proiect cu LCD grafic, nu vreti. Daca totusi vreti, nu vreti. Daca nu a fost destul de clar, am cateva sfaturi:

  • NU va bazati ca veti gasi ceva pe Maica Domnului
  • Cautati display de arduino pe site-uri precum olx.ro, okazii.ro
  • Daca nu gasiti nimic asa, va recomand adelaida.ro, unde nu sunt nici foarte scumpe si se livreaza in 3-4 zile lucratoare, dar este posibil sa fie dificil de programat. Cititi cu atentie datasheet-urile lor.

Pentru LCD-uri cumparate de pe adelaida.ro:

  • Cam toate LCD-urile au nevoie de tensiune negativa pe pinul 3 de contrast (la mine era -3V). Pe LCD-ul meu primeste tensiune negativa de -5V din pinul 18
  • Daca LCD-ul are nevoie de tensiune negativa pe pinul 3, verificati ca pinul 18 are tensiune negativa (au fost unele LCD-uri care nu aveau nimic conectat pe pinul 18)
  • Pentru a obtine tensiunea potrivita intre pinul 18 si pinul 3 veti avea nevoie probabil nevoie de un divizor de tensiune (la mine mergea si direct conectat, dar se vedea cam prost)

Download

Bibliografie/Resurse

pm/prj2015/anitu/vciurel.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