Differences

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

Link to this comparison view

egc:teme:2024:01 [2024/10/30 10:57]
andrei.lambru
egc:teme:2024:01 [2024/10/31 00:47] (current)
andrei.lambru [Exemple de funcționalități bonus]
Line 95: Line 95:
 $$ $$
  
-Vom folosi acest unghi în transformarea rotației ​tank-ului. Pentru a funcționa fără alte transformări ajutătoare de translație, ​tank-ul ​trebuie construit cu centru ​laturei de jos în originea sistemului de coordonate. Altfel, coordonata acestui centru trebuie calculată, iar rotația se va face mai întai ​translatând acel punct in origine, aplicând rotațiași translâtand ​înapoi.+Vom folosi acest unghi în transformarea rotației ​tancului. Pentru a funcționa fără alte transformări ajutătoare de translație, ​tancul ​trebuie construit cu centrul ​laturei de jos în originea sistemului de coordonate. Altfel, coordonata acestui centru trebuie calculată, iar rotația se va face mai întâi ​translatând acel punct în origine, aplicând rotația și translâtând ​înapoi.
  
 <note tip> <note tip>
Line 113: Line 113:
 $$ $$
 t = \frac{x - x_1}{x_2 - x_1}\\ t = \frac{x - x_1}{x_2 - x_1}\\
-(x_i,\ y_i) lerp((x_{p1},\ y_{p1}),\ (x_{p2},\ y_{p2}), t)\\  +f(P1P2, t)\\  
-lerp(P_1P_2, t) = P_1 * t + P_2 *(1-t)+f(ab, t) = * (1 - t) + b * t
 $$ $$
 +
 +În formula de mai sus, f este o interpolare liniară.
  
 === Deformare teren === === Deformare teren ===
Line 138: Line 140:
  
 <note important>​ <note important>​
-Valoarea pragului trebuie să fie aleasă astfel ​încat ​animația de „alunecare de teren” să fie realizată de-a lungul mai multor cadre. Altfel spus, animația trebuie să se poată observa vizual și nu trebuie să se realizeze instant, deoarece nu s-ar mai numi o animație.+Valoarea pragului trebuie să fie aleasă astfel ​încât ​animația de „alunecare de teren” să fie realizată de-a lungul mai multor cadre. Altfel spus, animația trebuie să se poată observa vizual și nu trebuie să se realizeze instant, deoarece nu s-ar mai numi o animație.
 </​note>​ </​note>​
  
Line 167: Line 169:
 Lansarea proiectilului se va realiza atunci când jucătorul apasă Spacebar, respectiv Enter, în funcție de tanc. Proiectilul va fi reprezentat grafic printr-un cerc și va fi lansat din vârful turelei, în direcția în care aceasta este orientată. Viteza și traiectoria proiectilului vor depinde de unghiul turelei și de forța aplicată la lansare, simulând efectul gravitației pentru a crea o mișcare realistă. Proiectilul va interacționa cu terenul și cu celelalte tancuri, provocând daune în momentul impactului. Lansarea proiectilului se va realiza atunci când jucătorul apasă Spacebar, respectiv Enter, în funcție de tanc. Proiectilul va fi reprezentat grafic printr-un cerc și va fi lansat din vârful turelei, în direcția în care aceasta este orientată. Viteza și traiectoria proiectilului vor depinde de unghiul turelei și de forța aplicată la lansare, simulând efectul gravitației pentru a crea o mișcare realistă. Proiectilul va interacționa cu terenul și cu celelalte tancuri, provocând daune în momentul impactului.
  
-Pentru deplasarea proiectilului vom considerala lansare un vector cu acelasi ​unghi ca si tunul tank-ului si magnitudine ​aleasa ​de voi. Pe parcursul ​deplasarii ​proiectilului,​ componenta x a vectorului nu se va modifica, iar componenta y va scadea ​din ce in ce mai repede, cu o acceleratie `g` constanta(valoarea ei nu trebuie ​sa fie 9.8 ca la acceleratia gravitationala, ci o valoare pe care o considerati potrivita in contextul jocului pe care il implementati).+Pentru deplasarea proiectiluluivom considera la lansare un vector cu același ​unghi ca și tunul tancului și magnitudine ​aleasă ​de voi. Pe parcursul ​deplasării ​proiectilului,​ componenta x a vectorului nu se va modifica, iar componenta y va scădea ​din ce în ce mai repede, cu o acceleratie `g` constantă ​(valoarea ei nu trebuie ​să fie neapărat ​9.8 ca la accelerația gravitațională, ci o valoare pe care o considerați potrivită în contextul jocului pe care îl implementați). 
 + 
 +Inițial, vectorul de deplasare a proiectilului este următorul:
  
 $$ $$
-\vec{v_{initial}} = (cos(unghiTun),\ sin(unghiTun)) * magnitudine\\+\vec{v} =  
 + 
 +\begin{bmatrix} 
 +cos(unghiTun) ​sin(unghiTun) ​ 
 +\end{bmatrix}  
 +\cdot magnitudine\\
  
-La\ fiecare\ cadru:​\\ ​ 
-\vec{v} = \vec{v} - \vec{g} * deltaTime\\ ​ 
-P = P + \vec{v} * deltaTime\ (P\ este\ pozitia\ proiectilului) 
 $$ $$
 +
 +La fiecare cadru trebuie să realizați următoarul proces:
 +
 +$$
 +P = P + \vec{v} \cdot deltaTime\\
 +\vec{v} = \vec{v} - \vec{g} \cdot deltaTime
 +$$
 +
 +În formula de mai sus, P reprezintă poziția proiectilului la un anumit cadru.
  
 ==== Interfața cu utilizatorul ==== ==== Interfața cu utilizatorul ====
-=== Bara de viata ===+=== Bara de viață ​===
 Ambele tancuri vor avea deasupra o bară de viață, reprezentată printr-un dreptunghi wireframe (neumplut), peste care va fi suprapus un alt dreptunghi umplut. Bara de viață va scădea atunci când unul dintre proiectile lovește tancul. Ambele tancuri vor avea deasupra o bară de viață, reprezentată printr-un dreptunghi wireframe (neumplut), peste care va fi suprapus un alt dreptunghi umplut. Bara de viață va scădea atunci când unul dintre proiectile lovește tancul.
  
Line 245: Line 260:
   * reprezentare mai avansata a terenului (care sa permita de exemplu tuneluri)   * reprezentare mai avansata a terenului (care sa permita de exemplu tuneluri)
   * alte mecanici care sa faca gameplay-ul mai interesant (elemente rogue-like, turn-based, inventar, etc)   * alte mecanici care sa faca gameplay-ul mai interesant (elemente rogue-like, turn-based, inventar, etc)
 +  * Deplasare tanc pe suprafața terenului care să țină cont de forma și lungimea acestuia din urmă
   * deplasare tancului să țină cont de forma terenului (ex: sa mearga mai incet / sa alunece cand e pe o portiune abrupta)   * deplasare tancului să țină cont de forma terenului (ex: sa mearga mai incet / sa alunece cand e pe o portiune abrupta)
   * orice alta functionalitate interesanta/​creativa la care va ganditi   * orice alta functionalitate interesanta/​creativa la care va ganditi
egc/teme/2024/01.1730278634.txt.gz · Last modified: 2024/10/30 10:57 by andrei.lambru
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