Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:dbrigalda:text-based_rpg [2021/06/04 00:16]
alexandru.rait [Software Design]
pm:prj2021:dbrigalda:text-based_rpg [2021/06/04 09:05] (current)
alexandru.rait [Software Design]
Line 25: Line 25:
   * Butoane   * Butoane
   * Rezistențe   * Rezistențe
-  * Fire+  * Fire{{ :​pm:​prj2021:​dbrigalda:​schematbrpg.png?​900 |}}
 ===== Software Design ===== ===== Software Design =====
 **IDE folosite:** Arduino pentru compilare și trimitere; VSC pentru editare surse **IDE folosite:** Arduino pentru compilare și trimitere; VSC pentru editare surse
Line 56: Line 56:
   * O întâmplare poate fi mini-game-ul de lockpicking.   * O întâmplare poate fi mini-game-ul de lockpicking.
   * În cadrul meniului acțiuni, jucătorul poate să continue aventura, să se vindece (costă mana) sau să cumpere un lockpick (costă gold)   * În cadrul meniului acțiuni, jucătorul poate să continue aventura, să se vindece (costă mana) sau să cumpere un lockpick (costă gold)
-  * Prețurile acțiunilor sunt notate după semnul dolar '​$'​ cu H (dacă ar exista acțiuni care costă health), M (pentru mana), G (pentru gold) sau combinații (dacă ar exista acțiuni care ar costa mai mult de o resursă).+  * Prețurile acțiunilor sunt notate după semnul dolar '​$'​ cu H (dacă ar exista acțiuni care ar cost health), M (pentru mana), G (pentru gold) sau combinații (dacă ar exista acțiuni care ar costa mai mult de o resursă).
   * Joystick-ul poate fi mutat pe axa y pentru a se face scroll la text sau pentru a selecta acțiunea dorită.   * Joystick-ul poate fi mutat pe axa y pentru a se face scroll la text sau pentru a selecta acțiunea dorită.
   * Butonul este folosit pentru a continua aventura, a alege o acțiune sau pentru a încerca lacătul la lockpicking.   * Butonul este folosit pentru a continua aventura, a alege o acțiune sau pentru a încerca lacătul la lockpicking.
Line 64: Line 64:
   * LED-urile RGB sunt folosite pentru a arăta sănătatea și mana jucătorului,​ având culorile precizate mai sus.   * LED-urile RGB sunt folosite pentru a arăta sănătatea și mana jucătorului,​ având culorile precizate mai sus.
   * LED-urile se sting în meniuri în care ele nu au rost. De exemplu în mini-game-ul de lockpicking,​ unde sănătatea și mana nu contează.   * LED-urile se sting în meniuri în care ele nu au rost. De exemplu în mini-game-ul de lockpicking,​ unde sănătatea și mana nu contează.
 +  * PIN-ul analog A4 este folosit ca seed pentru random.
 +  * Cheat-uri prin litere pe serială: '​l'​ pentru a arăta poziția corectă la lockpicking,​ '​u'​ pentru a incrementa sănătatea și mana, '​d'​ pentru a decrementa sănătatea și mana.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 Legarea plăcii cu ecranul: Legarea plăcii cu ecranul:
Line 73: Line 75:
 {{ :​pm:​prj2021:​dbrigalda:​ttrpg2.jpg?​400 |}} {{ :​pm:​prj2021:​dbrigalda:​ttrpg2.jpg?​400 |}}
 {{ :​pm:​prj2021:​dbrigalda:​ttrpg3.jpg?​400 |}} {{ :​pm:​prj2021:​dbrigalda:​ttrpg3.jpg?​400 |}}
 +[[https://​www.youtube.com/​watch?​v=2fCfSKYeLCg|{{ :​pm:​prj2021:​dbrigalda:​tbrpg-cover.png?​800 |}}]]
 ===== Concluzii ===== ===== 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: 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:
Line 86: Line 89:
 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) 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 ===== ===== Download =====
-<​note>​ +**Arhivă cu sursele:** 
-TODO +{{:​pm:​prj2021:​dbrigalda:​text-based_rpg.zip|}}
-</​note>​+
 ===== Jurnal ===== ===== Jurnal =====
 https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​dbrigalda/​text-based_rpg?​do=revisions https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​dbrigalda/​text-based_rpg?​do=revisions
pm/prj2021/dbrigalda/text-based_rpg.1622754979.txt.gz · Last modified: 2021/06/04 00:16 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