This is an old revision of the document!


Text-Based RPG

Student: Login to see contact info.

Introducere

Proiectul reprezintă implementarea unui joc RPG cu interfață text. Jocul este alcătuit din mai multe evenimente generate aleator. Jucătorul poate interacționa în mai multe feluri cu evenimentele întâmpinate, ducând la rezultate diferite.

Descriere generală

Schema bloc: Periferice de intrare:

  • Butoane - pentru acțiuni de bază, alegeri, alte funcționalități
  • Un joystick - pentru text scrolling (asemănător cu mouse wheel)
  • Un potențiometru - pentru lock-picking (un minigame care poate apărea ca un eveniment aleator, necesită rotirea potențiometrului pentru a deschide un lacăt)

Periferice de ieșire:

  • Un LED RGB care se modifică Verde→Galben→Roșu→Negru - pentru afișarea sănătății jucătorului (Health)
  • Un LED RGB care se modifică Bleu→Albastru→Negru - pentru afișarea manei jucătorului (Mana)
  • Un ecran LCD Nokia 5110 84×48 - pentru afișarea textului
  • Un Buzzer pasiv - pentru efecte sonore (de exemplu, un efect sonor va alerta jucătorul dacă lacătul se deschide)

Hardware Design

Lista de componente:

  • 1 Arduino UNO R3
  • 2 LED-uri RGB
  • 1 LCD Nokia 5110 84×48
  • 1 Joystick
  • 1 Potențiometru
  • 1 Buzzer Pasiv
  • Butoane
  • Rezistențe
  • Fire

Software Design

Rezultate Obţinute

Legarea plăcii cu ecranul: Jocul terminat:

Concluzii

Lucrând la acest proiect am realizat că trebuie să am foarte mare grijă la memorie. Au apărut foarte multe bug-uri în timpul implementări, cum ar fi pagini care nu apăreau în totalitate sau restartări ale plăcii. Foarte multe s-au datorat umplerii memoriei. Pentru a maximiza funcționalitățile și a minimaliza memoria utilizată am lucrat după următoarele reguli:

1) #define în loc de const

2) bufferii globali sunt reutilizați

3) variabilele sunt definite în blocuri

4) byte (unsigned char) și unsigned short în loc de int

5) variabilele globale și câmpurile din clasele globale folosite rar pot fi înlocuite cu funcții care le recalculează pentru a nu ocupa memorie când nu sunt utilizate (de exemplu am înlocuit UI::usesLeds cu UI::UsesLeds(), care întoarce true sau false în loc să rețină valoarea)

Download

TODO

Jurnal

Bibliografie/Resurse

pm/prj2021/dbrigalda/text-based_rpg.1622753143.txt.gz · Last modified: 2021/06/03 23:45 by alexandru.rait
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