This shows you the differences between two versions of the page.
egc:teme:2024:01 [2024/10/30 11:06] andrei.lambru [Control tancuri] |
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)\\ | + | I = f(P1, P2, t)\\ |
- | lerp(P_1, P_2, t) = P_1 * t + P_2 *(1-t) | + | f(a, b, t) = a * (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 184: | Line 186: | ||
$$ | $$ | ||
- | P = P + \vec{v} * deltaTime\\ | + | P = P + \vec{v} \cdot deltaTime\\ |
- | \vec{v} = \vec{v} - \vec{g} * deltaTime | + | \vec{v} = \vec{v} - \vec{g} \cdot deltaTime |
$$ | $$ | ||
Line 191: | Line 193: | ||
==== 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 258: | 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 |