Differences

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

Link to this comparison view

egc:teme:2018:02 [2018/11/05 21:35]
tiberiu_alex.sosea
egc:teme:2018:02 [2018/12/04 17:42] (current)
paul.gheorghe2411 [Joc de biliard]
Line 1: Line 1:
 ===== Tema 2 ===== ===== Tema 2 =====
-<​hidden>​ 
  
 ==== Joc de biliard ==== ==== Joc de biliard ====
  
-Scopul temei este de a crea un joc clasic de "8 Ball Pool" care foloseste 7 bile rosii, 7 bile galbene,+Scopul temei este de a crea un joc clasic de "8 Ball Pool" ​cu 2 jucatori, ​care foloseste 7 bile rosii, 7 bile galbene,
 o bila neagra si o bila alba. Exemplu:​[[https://​www.youtube.com/​watch?​v=6uzf1nXZW6E]] o bila neagra si o bila alba. Exemplu:​[[https://​www.youtube.com/​watch?​v=6uzf1nXZW6E]]
  
Line 11: Line 10:
 1. **Spargerea bilelor** 1. **Spargerea bilelor**
  
-La inceputul jocului, bilele sunt aranjate ca mai jos:+La inceputul jocului, bilele sunt aranjate ca in poza urmatoare:
  
-{{:​egc:​teme:​2018:​1.png?​direct&​200|}}+{{:​egc:​teme:​2018:​1.png?​direct&​600|}}
  
-Jucatorul care incepe va putea deplasa ​bila alba in prima treime a mesei, pentru a le spargeDupa ce a mutat bila unde doreste +Vor fi aranjate intr-un triunghi format din cele 15 bile in a treia treime a mesei, iar bila alba este situata ​in prima treime a mesei.
-cu tastele "​WASD",​ apasa pe "​SPACE",​ iar view-ul pe care il va avea este urmatorul:+
  
-{{:​egc:​teme:​2018:​2.png?​direct&​200|}}+      R 
 +     R G 
 +    G N R 
 +   G R R G 
 +  R R G G R
  
-Tacul va avea o animatie de retragere atunci cand se apasa "Left Mouse Button"​. De asemenea, cu "Right Mouse Button"​ +R - bila rosie 
-se poate misca tacul in jurul bilei albe, camera urmarind bila alba si tacul ca in modul third person. Intensitatea  +G - bila galbena 
-loviturii este data de timpul cat a fost tinut "Left Mouse Button"​ apasat. Directia loviturii este data de directia tacului.+N - bila neagra 
 + 
 +Jucatorul care incepe va putea deplasa bila alba in prima treime a mesei. Dupa ce a mutat bila unde doreste 
 +cu tastele "​WASD",​ apasa pe "​SPACE"​.  
 +<note important>​Jucatorul va fi constrans in a muta bila alba doar in prima treime a mesei</​note>​ 
 + 
 +View-ul pe care il va avea dupa apasarea tastei "​SPACE"​ este urmatorul:​ 
 + 
 +{{:​egc:​teme:​2018:​2.png?​direct&​600|}} 
 + 
 +La inceput, tacul este foarte aproape de bila alba. Tacul va avea o animatie de retragere ​(pe directia tacului) ​atunci cand se apasa "Left Mouse Button"​. Aceasta animatie va fi facuta in **vertex shader**. Dupa ce tacul a ajuns la o distanta anume de bila alba, acesta revine aproape de bila alba si animatia se reia. Intensitatea loviturii va fi direct proportionala cu distanta intre tac si bila alba. Cand dam drumul butonului din stanga al mouse-ului, se executa lovitura. De asemenea, cu "Right Mouse Button"​ se poate misca tacul in jurul bilei albe, camera urmarind bila alba si tacul ca in modul third person. Directia loviturii este data de directia tacului. Dupa lovitura, bila alba va avea o anumita viteza cu 
 +directia tacului si magnitudinea proportionala cu distanta dintre tac la bila alba in momentul release-ului butonului stang al mouse-ului. In 
 +momentul ciocnirii bilei albe cu celelalte bile, acestea vor trebui sa se comporte ca in viata reala. Deplasarea bilei albe este in planul XOZ.
  
 2. **Alegerea culorii fiecarui jucator** 2. **Alegerea culorii fiecarui jucator**
Line 32: Line 46:
 3. **Jocul pana la bila neagra** 3. **Jocul pana la bila neagra**
  
-Jucatorii trebuie sa-si introduca in buzunar toate bilele. Dupa aceea, ei pot introduce neagra. +Jucatorii trebuie sa-si introduca in buzunar toate bilele. O bila este introdusa in buzunar in momentul cand 
-Cine introduce primul bila neagra este castigator. Daca un jucator, la o lovitura, nu isi atinge prima data +se apropie atat de mult de un buzunar incat putem trage aceasta concluzie. Dupa aceea, ei pot introduce ​bila neagra. 
-propriile bilefost comis un fault iar celalalt jucator poate plasa bila alba oriunde ​pe masa.+Cine introduce primul bila neagra este castigator. Daca este comis un fault, celalalt jucator poate plasa bila alba 
 +oriunde pe masa cu tastele WASD (atata timp cat nu intersecteaza alte bile). Fault-ul este de doua feluri: daca un jucator, la o lovitura, 
 +nu isi atinge prima data propriile bile sau daca bila alba intra in buzunar. Dupa ce plasat ​bila alba pe masa cu un view 
 +top-down, apasa pe SPACE pentru a reveni la camera third person si jocul continua.
  
  
 === Alte specificatii === === Alte specificatii ===
  
-Dupa lovitura, camera se schimba din third person pe bila alba pe una top-view,+   ​* ​Dupa lovitura, camera se schimba din third person pe bila alba pe una top-down,
 pentru a putea fi vizualizata lovitura: pentru a putea fi vizualizata lovitura:
  
-{{:​egc:​teme:​2018:​3.png?​direct&​200|}}+{{:​egc:​teme:​2018:​3.png?​direct&​600|}}
  
-Pentru punctaj complet, jocul trebuie sa fie consecvent+   ​* ​Pentru punctaj complet, jocul trebuie sa fie consecvent
 +   * Animatia tacului pentru lovirea bilei albe se va face in vertex shader.
  
  
 === Punctaj === === Punctaj ===
  
-  * 5% - Desenarea mesei cu buzunare si a bilelor, ca in poze +  * 10% - Afisare la stdout statistici joc (cate bile a bagat fiecare, cate fault-uri s-au comis etc
-  * 5% - Afisare la stdout statistici joc (cate bile a bagat fiecare, cate fault-uri s-au comis etc) +  * 10% - Implementarea coliziunilor (bila-bila, bila-manta) (link-ul [[http://​www.gamasutra.com/​view/​feature/​3015/​pool_hall_lessons_fast_accurate_.php|acesta]] ar fi de folos
-  * 10% - Dispartia unei bile cand a intrat ​in buzunar +  * 10% - Dispartia unei bile bagata ​in buzunar 
-  * 15% - Animatie tac in momentul loviturii+  * 15% - Animatie tac in vertex shader ​in momentul loviturii
   * 15% - Camera third person pe directia tacului, target-ul fiind bila alba   * 15% - Camera third person pe directia tacului, target-ul fiind bila alba
-  * 15% - Vedere top-view dupa ce tacul a lovit bila ptr a se putea vizualiza lovitura +  * 15% - Vedere top-down dupa ce tacul a lovit bila ptr a se putea vizualiza lovitura 
-  * 35% - Implementarea coliziunilor (bila-bilabila-manta)+  * 25% - Desenarea mesei cu buzunare si a bilelorca in poze
  
 === Bonus === === Bonus ===
  
-Orice aduce realism jocului ​(efect side, follow, retur, masa realista, linii pentru ghidare etc) +Orice aduce realism jocului:
  
 +  * Posibilitatea imprimarii unui efect lateral, in sus, in jos sau o combinatie intre ele ([[https://​www.youtube.com/​watch?​v=0Skeucpa1zg|aici]] si [[https://​www.youtube.com/​watch?​v=kpRmoK3V6NQ|aici]])
 +  * Masa realista
 +  * Linii pentru ghidare
 +  * etc
 === Intrebari si raspunsuri === === Intrebari si raspunsuri ===
 +
 Pentru intrebari vom folosi forumurile de pe moodle. ​ Pentru intrebari vom folosi forumurile de pe moodle. ​
  
Line 77: Line 99:
 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 Source/​Laboratoare/​ 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 Laboratoare 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 Source/​Laboratoare/​ 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 Laboratoare 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 LabList.h trebuie adaugata si calea catre header-ul temei. De exemplu: #include <​Laboratoare/​Tema2/​Tema2.h>​ In fisierul LabList.h trebuie adaugata si calea catre header-ul temei. De exemplu: #include <​Laboratoare/​Tema2/​Tema2.h>​
  
Line 98: Line 120:
 === Deadline tema === === Deadline tema ===
  
-//TODO//+5 decembrie 2018, ora 23:55
  
-</​hidden>​ 
-baking .. 
egc/teme/2018/02.1541446520.txt.gz · Last modified: 2018/11/05 21:35 by tiberiu_alex.sosea
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