Proiectul consta intr-un joc de tip dungeon crawler genre Roguelike RPG, in care jucatorul controleaza un personaj ce exploreaza un labirint, infrunta inamici si colecteaza diferite resurse sau imbunatatiri, la fiecare explorare labirintul va fi diferit camerele vor fi generate procedural pe baza unor reguli astfel fiecare eplorare va aduce o experienta noua pentru jucator . Scopul proiectului este de implementa un joc cu mai multe mecanici precum logica de miscare, gestionarea resurselor, AI basic pentru inamici, interactiunea jucator cu mediul inconjurator si toatea acestea folosind niste resurse limitate. Idea de la care am pornit a fost pasiunea mea pentru jocuri, astfel m-am gandit cum as putea face un proiect care sa fie interesant pentru mine, astfel am ajuns la aceasta idee. Un joc de tip dungeon crawler poate poate fi simplificat pentru a fi adaptat la constrangerile hardware insa raman si o groaza de mecanici pentru a face jocul interant in continuare.
Sistemul este compus din următoarele componente:
Ecranul ILI9341 TFT LCD Display Module este conectat în modul 16-bit paralel la un Arduino Mega 2560. Pinii de comunicație ai ecranului funcționează la 3.3V, în timp ce plăcuța oferă semnale la 5V. Pentru a realiza conexiunea dintre ecran și microcontroller am utilizat un TFT Shield V2.2, care realizează conversia nivelurilor de tensiune.
Shield-ul se conectează la plăcuță astfel:
Această mapare a pinilor nu a fost realizată manual, deoarece shield-ul permite un singur mod de conectare la Arduino Mega.
Conexiunile dintre shield și ecran sunt următoarele:
Pentru conectarea joystick-ului am utilizat:
Acești pini au fost aleși deoarece semnalele VRx și VRy sunt citite analogic.
Pentru conectarea keypad-ului am utilizat:
Acești pini au fost aleși deoarece suportă întreruperi de tip PCINT, necesare pentru detectarea apăsării butoanelor.
Buzzer-ul a fost conectat la pinul digital 13, deoarece este necesar un pin cu suport PWM pentru controlul acestuia.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.