This shows you the differences between two versions of the page.
egc:teme:2017:01 [2017/10/18 16:45] radu_florentin.boeru [Enunt] |
egc:teme:2017:01 [2019/10/22 06:31] (current) alexandru.gradinaru |
||
---|---|---|---|
Line 31: | Line 31: | ||
Ciocnirea sau atingerea a doua obiecte se defineste prin termenul de coliziune. Determinarea coliziunii poate fi simplificata prin aproximarea caracterului cu un cerc. | Ciocnirea sau atingerea a doua obiecte se defineste prin termenul de coliziune. Determinarea coliziunii poate fi simplificata prin aproximarea caracterului cu un cerc. | ||
- | <note tip>Mai multe informatii despre metode de coliziune: | + | <note tip>Mai multe informatii despre ce reprezinta coliziunea si cum se poate implementa: |
- | * https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection | + | * [[https://developer.mozilla.org/en-US/docs/Games/Techniques/2D_collision_detection]] |
- | * https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection | + | * [[https://learnopengl.com/In-Practice/2D-Game/Collisions/Collision-detection]] |
- | * https://studiofreya.com/3d-math-and-physics/collision-theory/ | + | * [[https://www.youtube.com/watch?v=aTbw71EpamY]] |
- | * Google search :) | + | * [[https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection]] |
</note> | </note> | ||
- | Astronautul trebui sa isi pastreze orientarea atat in cazul deplasarii cat si in cazul stationarii. In cazul platformelor care sunt deasupra jumatatii ecranului, orientarea va fi in jos, altfel in sus. In cazul deplasarii, orientarea trebuie sa fie in directia deplasarii. | + | Astronautul trebui sa isi pastreze orientarea atat in cazul deplasarii cat si in cazul stationarii. In cazul platformelor care sunt deasupra caracterului, orientarea va fi in jos, altfel in sus. In cazul deplasarii, orientarea trebuie sa fie in directia deplasarii. |
Exemplu minimal: {{ :egc:teme:2017:path.gif?nolink&200 | }} | Exemplu minimal: {{ :egc:teme:2017:path.gif?nolink&200 | }} | ||
Line 44: | Line 44: | ||
**Geometrie minimala** | **Geometrie minimala** | ||
* Astronaut <-> triunghi | * Astronaut <-> triunghi | ||
- | * Asteroizii <-> discuri de cerc cu rotatie, translatie sau scalare permanenta (discretizarea punctelor poate fi facuta cu un pas mai mare astfel incat sa fie observata mai bine rotatia acestora) | + | * Asteroizii <-> discuri de cerc (minim 8 varfuri) cu rotatie, translatie sau scalare permanenta (discretizarea punctelor poate fi facuta cu un pas mai mare astfel incat sa fie observata mai bine rotatia acestora) |
* Platformele <-> suprafete rectangulare fixe in spatiu | * Platformele <-> suprafete rectangulare fixe in spatiu | ||
+ | |||
+ | **Implementare suficienta** | ||
+ | * Scena este fixa (nu se misca odata cu astonautul si nu exista spatiu din scena care sa nu se vada in ecran, nefiind astfel necesara miscarea ferestrei) - peretii scenei pot fi considerati platforma de stationare sau de reflexie, la alegerea voastra | ||
+ | * Pentru obstacole sunt minime urmatoarele: | ||
+ | * 1 platforma de stationare | ||
+ | * 1 platforma de reflexie | ||
+ | * 1 asteroid cu fiecare animatie (un asteroid cu rotatie, unul cu translatie si unul cu scalare) sau 2 asteroizi cu transformari compuse (ex: 1 asteroid cu scalare si translatie si 1 asteroid cu rotatie si translatie). | ||
+ | * 1 platforma finala | ||
+ | * Orice nu este mentionat sau specificat explicit este lasat la latitudinea voastra | ||
Inspiratie: [[https://www.youtube.com/watch?v=Z_NSuR1iaGs|Rockitty]] | Inspiratie: [[https://www.youtube.com/watch?v=Z_NSuR1iaGs|Rockitty]] | ||
Line 52: | Line 61: | ||
<note important> | <note important> | ||
- | Puteti sa folositi ce culori doriti atat timp cat este observata clar distinctia dintre obiecte. | ||
Alte aspecte ce nu au fost prezentate raman la latitudinea voastra. | Alte aspecte ce nu au fost prezentate raman la latitudinea voastra. | ||
</note> | </note> | ||
Line 58: | Line 66: | ||
<note tip> | <note tip> | ||
* Se poate utiliza framework-ul de laborator sau o implementare proprie. | * Se poate utiliza framework-ul de laborator sau o implementare proprie. | ||
- | * Plecand de la pozitia mouse-ului in pixeli si cunoscand spatiul logic utilizat puteti sa calculati pozitia logica a cursorului pentru a determina directia de deplasare. | ||
* Documentatia pentru evenimentele de mouse se gaseste in fisierul [[https://github.com/UPB-Graphics/Framework-EGC/blob/master/Source/Core/Window/InputController.h|/Core/Window/InputController.h]] | * Documentatia pentru evenimentele de mouse se gaseste in fisierul [[https://github.com/UPB-Graphics/Framework-EGC/blob/master/Source/Core/Window/InputController.h|/Core/Window/InputController.h]] | ||
</note> | </note> | ||
Line 69: | Line 76: | ||
<note> | <note> | ||
* in mod normal arhiva trebuie sa contina toate resursele necesare compilarii si rularii | * in mod normal arhiva trebuie sa contina toate resursele necesare compilarii si rularii | ||
- | * inainte de a face arhiva asigurativa ca ati dat clean la proiect | + | * inainte de a face arhiva asigurati-va ca ati dat clean la proiect |
* click dreapta pe proiect in **Solution Explorer** -> **Clean Solution**, sau | * click dreapta pe proiect in **Solution Explorer** -> **Clean Solution**, sau | ||
* stergeti folderul __**/Visual Studio/obj**__ | * stergeti folderul __**/Visual Studio/obj**__ | ||
Line 98: | Line 105: | ||
===== Bonusuri posibile ===== | ===== Bonusuri posibile ===== | ||
* La coliziunea cu un asteroid acesta este fragmentat in asteroizi mai mici [5p] | * La coliziunea cu un asteroid acesta este fragmentat in asteroizi mai mici [5p] | ||
- | * Nivel complex (+platforme oblice) [5p] | + | * Nivel complex (platforme oblice, scena dinamica - se misca odata cu astonautul si exista spatii din scena care nu se vad la un moment dat in ecran) [5p] |
* Simularea fortelor de accelerare si prezenta unor asteroizi cu camp gravitational [5p] | * Simularea fortelor de accelerare si prezenta unor asteroizi cu camp gravitational [5p] | ||
* Efect de "aterizare" la incetarea miscarii (noua orientare nu este obtinuta instant, este observata rotatia triunghiului) [5p] {{ :egc:teme:2017:pathbonus.gif?nolink&200 |}} | * Efect de "aterizare" la incetarea miscarii (noua orientare nu este obtinuta instant, este observata rotatia triunghiului) [5p] {{ :egc:teme:2017:pathbonus.gif?nolink&200 |}} |