This shows you the differences between two versions of the page.
egc:teme:2020:01 [2020/11/01 09:38] anca.morar |
egc:teme:2020:01 [2020/11/17 19:31] (current) florin_eugen.iancu |
||
---|---|---|---|
Line 1: | Line 1: | ||
==== Tema 1 - Bow and Arrow ==== | ==== Tema 1 - Bow and Arrow ==== | ||
- | In cadrul temei 1 veti implementa propria versiune de Flappy Bird. Tot ce nu este specificat ramane la creativitatea voastra. | + | In cadrul temei 1 se va implementa o versiune simplificata a jocului Bow and Arrow. Tot ce nu este specificat ramane la creativitatea voastra. |
=== Jucatorul === | === Jucatorul === | ||
Line 12: | Line 13: | ||
Obiectele in care jucatorul trebuie sa traga cu sageata vor fi de 2 feluri: baloane si shuriken. | Obiectele in care jucatorul trebuie sa traga cu sageata vor fi de 2 feluri: baloane si shuriken. | ||
- | Baloanele vor fi create prin combinarea a minim 2 primitive(ex: un cerc scalat diferit pe axele x si y si o polilinie). Acestea se vor deplasa ascendent pe axa OY(vor aparea in partea de jos a scenei si vor urca). Baloanele vor fi de doua culori diferite: baloanele rosii - vor mari scorul, baloanele galbene - vor micsora scorul. | + | Baloanele vor fi create prin combinarea a minim 2 primitive(ex: un cerc scalat diferit pe axele x si y si o polilinie). Acestea se vor deplasa ascendent pe axa OY(vor aparea in partea de jos a scenei si vor urca). Baloanele vor fi de doua culori diferite: baloanele rosii- vor mari scorul, baloanele galbene- vor micsora scorul la coliziunea cu sageata. |
Stelutele shuriken vor fi create prin combinarea a 4 triunghiuri. Ele se vor deplasa pe axa OX(vor aparea din partea dreapta a scenei si se vor indrepta catre jucator). Stelutele vor fi animate - se vor roti in jurul centrului pe tot parcursul deplasarii. | Stelutele shuriken vor fi create prin combinarea a 4 triunghiuri. Ele se vor deplasa pe axa OX(vor aparea din partea dreapta a scenei si se vor indrepta catre jucator). Stelutele vor fi animate - se vor roti in jurul centrului pe tot parcursul deplasarii. | ||
+ | |||
+ | Obiectele trebuie definite ca in laboratorul 2. Nu se accepta incarcarea de obiecte 3D! | ||
Line 21: | Line 25: | ||
Arcul jucatorului se afla in partea stanga a scenei. Arcul se poate deplasa doar pe axa OY, prin apasarea tastelor W, S. Directia de tragere a arcului se poate ajusta prin miscarea mouse-ului. Arcul va fi mereu rotit astfel incat sageata se va deplasa catre pozitia curenta a mouse-ului. Jucatorul va putea trage o sageata la cateva secunde. Viteza de deplasare a sagetii este determinata de timpul de apasare al butonului mouse-ului. Cu cat butonul este apasat mai mult timp, cu atat viteza va fi mai mare, pana la o limita setata. | Arcul jucatorului se afla in partea stanga a scenei. Arcul se poate deplasa doar pe axa OY, prin apasarea tastelor W, S. Directia de tragere a arcului se poate ajusta prin miscarea mouse-ului. Arcul va fi mereu rotit astfel incat sageata se va deplasa catre pozitia curenta a mouse-ului. Jucatorul va putea trage o sageata la cateva secunde. Viteza de deplasare a sagetii este determinata de timpul de apasare al butonului mouse-ului. Cu cat butonul este apasat mai mult timp, cu atat viteza va fi mai mare, pana la o limita setata. | ||
+ | |||
Jucatorul va avea 3 vieti. La coliziunea dintre arc si un shuriken jucatorul va pierde o viata. La pierderea tuturor vietilor, jocul se va termina. | Jucatorul va avea 3 vieti. La coliziunea dintre arc si un shuriken jucatorul va pierde o viata. La pierderea tuturor vietilor, jocul se va termina. | ||
+ | |||
Scorul va creste la coliziunea sagetii cu baloanele rosii sau shuriken. Scorul se va afisa periodic in consola sau se va ilustra pe ecran sub forma unui dreptunghi scalat (scorebar). | Scorul va creste la coliziunea sagetii cu baloanele rosii sau shuriken. Scorul se va afisa periodic in consola sau se va ilustra pe ecran sub forma unui dreptunghi scalat (scorebar). | ||
Line 27: | Line 33: | ||
=== Detalii de implementare === | === Detalii de implementare === | ||
- | Sagetile pot fi lansate doar catre partea dreapta a scenei.In momentul coliziunii sagetii cu un obiect se va declansa o animatie de distrugere a obiectului(ex: balonul va fi scalat cu factor subunitar pana dispare de tot). | + | * Sagetile pot fi lansate doar catre partea dreapta a scenei.In momentul coliziunii sagetii cu un obiect se va declansa o animatie de distrugere a obiectului(ex: balonul va fi scalat cu factor subunitar pana dispare de tot). |
- | Afisarea puterii de tragere se va realiza astfel: un dreptunghi amplasat sub jucator, care va fi scalat pe axa OX cat timp butonul mouse-ului este tinut apasat. | + | * Afisarea puterii de tragere se va realiza astfel: un dreptunghi amplasat sub jucator, care va fi scalat pe axa OX cat timp butonul mouse-ului este tinut apasat. |
- | Coliziunea dintre sageata si obiectele tinta se va implementa prin testarea daca varful sagetii este inclus in cercul incadrator al fiecarui obiect tinta. | + | * Coliziunea dintre sageata si obiectele tinta se va implementa prin testarea daca varful sagetii este inclus in cercul incadrator al fiecarui obiect tinta. |
- | Coliziunea dintre shuriken si arcul jucatorului se va implementa prin testarea intersectiei cercurilor incadratoare ale obiectelor. | + | * Coliziunea dintre shuriken si arcul jucatorului se va implementa prin testarea intersectiei cercurilor incadratoare ale obiectelor. |
- | Crearea mediului inconjurator trebuie sa se realizeze in asa fel incat consumul de memorie si timpul de redare sa fie optime. Nu creati incontinuu obiecte care sa reprezinte obiectele tinta si sagetile care apar si dispar din spatiul de desenare!!!! O implementare eleganta este sa creati un singur obiect in functia init(), iar in functia Update() sa dati comanda de desenare pentru acel obiect de mai multe ori, de fiecare data la alta pozitie si cu alt factor de scalare. | + | * Crearea mediului inconjurator trebuie sa se realizeze in asa fel incat consumul de memorie si timpul de redare sa fie optime. Nu creati incontinuu obiecte care sa reprezinte obiectele tinta si sagetile care apar si dispar din spatiul de desenare!!!! O implementare eleganta este sa creati un singur obiect in functia init(), iar in functia Update() sa dati comanda de desenare pentru acel obiect de mai multe ori, de fiecare data la alta pozitie si cu alt factor de scalare. |
- | Toate animatiile trebuie sa fie independente de timpul de procesare al unui cadru. | + | * Toate animatiile trebuie sa fie independente de timpul de procesare al unui cadru. |
Line 90: | Line 96: | ||
* stergeti fisierul __**/Visual Studio/Framework_EGC.sdf**__ (in caz ca exista) | * stergeti fisierul __**/Visual Studio/Framework_EGC.sdf**__ (in caz ca exista) | ||
* stergeti fisierul __**/Visual Studio/Framework_EGC.VC.db**__ (in caz ca exista) | * stergeti fisierul __**/Visual Studio/Framework_EGC.VC.db**__ (in caz ca exista) | ||
- | * stergeti folderul __**/.vs**__ (in caz ca exista) | + | * stergeti folderul __**/Visual Studio/.vs**__ (daca nu il vedeti, **este posibil sa fie ascuns**) |
* stergeti folderul __**/x64**__ sau __**/x86**__ (in caz ca exista) | * stergeti folderul __**/x64**__ sau __**/x86**__ (in caz ca exista) | ||
* executabilul final este generat in folderul __**/x86**__ sau __**/x64**__ la finalul link-editarii in functie de arhitectura aleasa la compilare (32/64 biti) | * executabilul final este generat in folderul __**/x86**__ sau __**/x64**__ la finalul link-editarii in functie de arhitectura aleasa la compilare (32/64 biti) | ||
Line 97: | Line 103: | ||
=== Deadline tema === | === Deadline tema === | ||
- | 15 noiembrie ora 23:55 | + | 17 noiembrie ora 23:59 |
+ | |||
+ | === Responsabili tema === | ||
+ | * Stefania Cristea | ||
+ | * Andrei Lapusteanu | ||
+ | * Anca Morar |