Scopul temei - Implementarea unui joc 2D prin utilizarea conceptelor prezentate in primele 3 laboratoare:
constructia de meshe simple
tratarea evenimentelor pentru mouse
utilizarea transformarilor 2D: translatie, rotatie, scalare
Cerinta - Sa se implementeze in OpenGL o aplicatie in care utilizatorul poate controla un astronaut printre platforme si asteroizi pana ajunge la o pozitie de sfarsit.
Astronautul se lanseaza intr-o directie si va merge cu viteza constanta pana la intalnirea unui obstacol. Exista mai multe tipuri de obstacole:
platforme de stationare: daca astronautul atinge o astfel de platforma acesta va stationa pe ea
platforme de reflexie: daca astronautul atinge o astfel de platforma va fi deplasat mai departe cu acelasi unghi cu care a ajuns pe platforma (fenomen de reflexie)
asteroizi: daca astronautul atinge un asteroid, acesta din urma este distrus, iar astronautul este propulsat in alta directie, in functie de unghiul de lovire
platforma finala: daca astronautul atinge o astfel de platforma se termina jocul (sau nivelul)
Controlul se va face astfel:
Ciocnirea sau atingerea a doua obiecte se defineste prin termenul de coliziune. Determinarea coliziunii poate fi simplificata prin aproximarea caracterului cu un cerc.
Mai multe informatii despre ce reprezinta coliziunea si cum se poate implementa:
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:
Geometrie minimala
Astronaut ↔ triunghi
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
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: Rockitty
Alte aspecte ce nu au fost prezentate raman la latitudinea voastra.
Punctajul este oferit doar pentru cerintele integrate in aceeasi scena.
Punctajul bonus se ofera doar daca cerintele obligatorii sunt implementate corect.