This shows you the differences between two versions of the page.
egc:teme:2021:02 [2021/11/22 00:53] alexandru.gradinaru |
egc:teme:2021:02 [2021/12/08 14:51] (current) andrei.lambru |
||
---|---|---|---|
Line 31: | Line 31: | ||
**Jucătorul** va fi poziționat inițial la o poziție aleatoare validă (pe o celulă ce reprezintă un drum liber) si se poate deplasa doar pe drumuri libere, in rest fiind blocat de coliziuni. | **Jucătorul** va fi poziționat inițial la o poziție aleatoare validă (pe o celulă ce reprezintă un drum liber) si se poate deplasa doar pe drumuri libere, in rest fiind blocat de coliziuni. | ||
+ | |||
+ | **Update clarificare**: Labirintul trebuie sa fie diferit intre doua rulari. | ||
<note tip>Coliziunile nu trebuie sa fie perfecte, se pot aproxima prin dreptunghiuri sau sfere. Mai multe informatii despre coliziuni si cum se pot implementa in 3D: | <note tip>Coliziunile nu trebuie sa fie perfecte, se pot aproxima prin dreptunghiuri sau sfere. Mai multe informatii despre coliziuni si cum se pot implementa in 3D: | ||
Line 72: | Line 74: | ||
=== HUD === | === HUD === | ||
- | Pe langa lumea inconjuratoare, trebuie sa desenati si un HUD (heads-up display). Elemente de HUD trebuie sa fie proiectate ortografic. Este necesar sa avetu cel putin 2 elemente care apar intotdeauna pe ecranul jucatorului in aceeasi pozitie, ca element de interfata grafica: | + | Pe langa lumea inconjuratoare, trebuie sa desenati si un HUD (heads-up display). Elementele de HUD trebuie sa fie proiectate ortografic. Este necesar sa aveti cel putin 2 elemente care apar intotdeauna pe ecranul jucatorului in aceeasi pozitie, ca elemente de interfata grafica: |
* **Viață**: Viata este indicata sub forma unui healthbar prin 2 dreptunghiuri, unul wireframe altul solid (vezi tema 1). | * **Viață**: Viata este indicata sub forma unui healthbar prin 2 dreptunghiuri, unul wireframe altul solid (vezi tema 1). | ||
* **Timpul ramas**: Timpul ramas este indicat printr-o a doua bara de stare, in mod similar cu bara de viata. | * **Timpul ramas**: Timpul ramas este indicat printr-o a doua bara de stare, in mod similar cu bara de viata. | ||
- | <note tip>Implementare este la latitudinea voastra: puteti folosi un viewport separat, puteti "grupa" elementele de HUD cu jucatorul, sau orice alte variante.</note> | + | <note tip>Implementarea este la latitudinea voastra: puteti folosi un viewport separat, puteti "grupa" elementele de HUD cu jucatorul, sau orice alte variante.</note> |
=== Gameplay/Detalii de implementare === | === Gameplay/Detalii de implementare === | ||
- | Scopul jocului este ca jucatorul sa iasa cu succes din labirint. | + | Scopul jocului este ca jucatorul sa iasa cu succes din labirint intr-un timp limita. |
Asa cum s-a precizat mai sus, exista celule cu inamici care se deplaseaza incontinuu in interiorul acestor celule. De fiecare data cand jucatorul este atins de un inamic, acesta pierde din viata. Inamicul trebuie sa fie suficient de mare si/sau sa mearga suficient de rapid pentru a nu permite jucatorului sa il ocoleasca (usor), astfel acesta fiind nevoit sa traga in inamic. | Asa cum s-a precizat mai sus, exista celule cu inamici care se deplaseaza incontinuu in interiorul acestor celule. De fiecare data cand jucatorul este atins de un inamic, acesta pierde din viata. Inamicul trebuie sa fie suficient de mare si/sau sa mearga suficient de rapid pentru a nu permite jucatorului sa il ocoleasca (usor), astfel acesta fiind nevoit sa traga in inamic. | ||
Line 98: | Line 100: | ||
* Pick-up bonuses sau skill system cu mecanica de cooldown sau boost (modificarea proiectilelor, tragerea cu mai multe proiectile odata, health recovery, saritura (bolta) peste inamic cu o tasta etc.) | * Pick-up bonuses sau skill system cu mecanica de cooldown sau boost (modificarea proiectilelor, tragerea cu mai multe proiectile odata, health recovery, saritura (bolta) peste inamic cu o tasta etc.) | ||
* Scene complexe | * Scene complexe | ||
- | * Labirint care sa isi schimbe configuratia (se misca, regenereaza configuratia din timp in timp) | + | * Labirint care sa isi schimbe configuratia in timpul jocului (se misca, regenereaza configuratia din timp in timp) |
* Schimbare culoare inamic in functie de viata ramasa | * Schimbare culoare inamic in functie de viata ramasa | ||
* Inamici inteligenti care urmaresc jucatorul dupa ce intra in patratul lor | * Inamici inteligenti care urmaresc jucatorul dupa ce intra in patratul lor | ||
Line 135: | Line 137: | ||
Tema va fi implementata in OpenGL si C++. Este indicat sa folositi framework-ul si Visual Studio. | Tema va fi implementata in OpenGL si C++. Este indicat sa folositi framework-ul si Visual Studio. | ||
- | Pentru implementarea temei, in folderul __**src/lab_m1**__ puteti crea un nou folder, de exemplu Tema1, cu fisierele Tema1.cpp si Tema1.h (pentru implementare POO, este indicat sa aveti si alte fisiere). Pentru a vedea fisierele nou create in Visual Studio in Solution Explorer, apasati click dreapta pe filtrul lab_m1 si selectati Add->New Filter. Dupa ce creati un nou filtru, de exemplu Tema1, dati click dreapta si selectati Add->Existing Item. Astfel adaugati toate fisierele din folderul nou creat. | + | Pentru implementarea temei, in folderul __**src/lab_m1**__ puteti crea un nou folder, de exemplu Tema2, cu fisierele Tema2.cpp si Tema2.h (pentru implementare POO, este indicat sa aveti si alte fisiere). Pentru a vedea fisierele nou create in Visual Studio in Solution Explorer, apasati click dreapta pe filtrul lab_m1 si selectati Add->New Filter. Dupa ce creati un nou filtru, de exemplu Tema2, dati click dreapta si selectati Add->Existing Item. Astfel adaugati toate fisierele din folderul nou creat. |
- | In fisierul lab_list.h trebuie adaugata si calea catre header-ul temei. De exemplu: #include "lab_m1/Tema1/Tema1.h" | + | In fisierul lab_list.h trebuie adaugata si calea catre header-ul temei. De exemplu: #include "lab_m1/Tema2/Tema2.h" |
=== Arhivarea proiectului === | === Arhivarea proiectului === | ||
Line 150: | Line 152: | ||
=== Deadline tema === | === Deadline tema === | ||
- | 12 decembrie ora 23:59 | + | 17 decembrie ora 23:59 |
=== Responsabili tema === | === Responsabili tema === |