This shows you the differences between two versions of the page.
pm:prj2022:alaura:bogdan.vasile2211 [2022/05/27 04:15] bogdan.vasile2211 [Rezultate Obţinute] |
pm:prj2022:alaura:bogdan.vasile2211 [2022/05/27 17:27] (current) bogdan.vasile2211 [Software Design] |
||
---|---|---|---|
Line 40: | Line 40: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | |||
- | <note tip> | ||
Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * mediu de dezvoltare: Arduino IDE 1.8.20 |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * librării şi surse 3rd-party: |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | * Adafruit's SSD1306 for monochrome OLED displays; |
- | * (etapa 3) surse şi funcţii implementate | + | * Arduino Joystick Library; |
- | </note> | + | * Modified AVRs TWI module; |
+ | * algoritmi şi structuri pe care plănuiţi să le implementaţi: | ||
+ | * Codul este implementat in urmatoarele fisiere, care se ocupa fiecare cu cate un element distinct at aplicatiei: | ||
+ | * **input.h/.cpp**, verifica inputul venit de la jucator; | ||
+ | * **types.h/.cpp**, lista de constante pt denumiri pentru diferitele obstacole/pereti; | ||
+ | * **sprites.h**, care memoreaza in niste arrays informatii sub format BMP despre toate sprite-urile din joc; | ||
+ | * **sound.h**, care se ocupa de sunetele din joc, transformate pentru a fi interpretate de buzzer si de asemenea tine cont de toate functiile care se ocupa de sunet (playSound(), setFrequency() etc.); | ||
+ | * **level.h**, o matrice de octeti care reprezinta mapa jocului; | ||
+ | * **constants.h**, contine informatii generale despre starea jocului, valori tinute aici pentru a putea fi usor modificate (damage values, movement speed etc.); | ||
+ | * **display.h**, se ocupa de afisarea pe ecran a frame-ului curent; | ||
+ | * **entities.h/.cpp**, structuri si functii de management pentru player si inamici; | ||
+ | * **TWI_Master.h/.cpp**, pentru a genera un driver pentru modulul TWI; | ||
+ | * **SSD1306.h/.cpp**, modificare custom a librariei Adafruit SSD1306; | ||
+ | * **doom-nano.ino**, driver code pentru aplicatie; face o buna parte din codul propriu-zis al jocului, cum ar fi trasul, mecanica de moarte, detectarea de coliziuni etc. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Line 59: | Line 69: | ||
Mai jos sunt ultimele variante ale proiectului, cu joystick-ul in functiune: | Mai jos sunt ultimele variante ale proiectului, cu joystick-ul in functiune: | ||
- | ===== Concluzii ===== | + | {{ :pm:prj2022:alaura:pm_final_3.png |}} |
+ | {{ :pm:prj2022:alaura:pm_final_4.png |}} | ||
===== Download ===== | ===== Download ===== | ||