Table of Contents

Tema 1 - My Flappy Bird

In cadrul temei 1 se va implementa o versiune simplificata a jocului My Flappy Bird. Tot ce nu este specificat ramane la creativitatea voastra.

Pasarea

Pasarea va fi formata din mai multe primitive simple (de exemplu, un dreptunghi si un disc de cerc).

Mediul in care se deplaseaza pasarea

Mediul inconjurator va fi creat din perechi de dreptunghiuri, de aceeasi latime dar de inaltime diferita, unul ancorat sus, si celalalt ancorat jos (similar cu stalactitele si stalagmitele din pesteri), ca in figura urmatoare. Inaltimea dreptunghiurilor se poate stabili procedural, aleator sau hardcodat, dar trebuie sa se respecte regula ca distanta intre doua perechi de dreptunghiuri sa fie suficient de mare, astfel incat pasarea sa poata trece printre ele.

Gameplay

Jocul va fi un endless runner, care va crea impresia ca pasarea se deplaseaza de la stanga la dreapta printre perechile de dreptunghiuri. In realitate, nu se deplaseaza pasarea de la stanga la dreapta, ci scena se deplaseaza de la dreapta spre stanga. Pasarea este afectata de gravitatie. Ea va avea intotdeauna tendinta sa se incline in jos si sa cada. Daca se apasa tasta SPACE, pasarea se va ridica , inclinandu-se in sus. Daca pasarea se loveste de dreptunghiuri, moare. Pe masura ce timpul de supravietuire al pasarii trece, creste si punctajul jucatorului. In consola se va afisa periodic punctajul jucatorului. Atunci cand pasarea moare, se va afisa in consola un mesaj, impreuna cu punctajul final.

Detalii de implementare

Bonus

Exemplu (doar pentru orientare): https://www.youtube.com/watch?v=I69adfEqwC0

Functionalitati obligatorii

Barem orientativ pentru realizarea functionalitatilor (din 150 puncte):

Intrebari si raspunsuri

Pentru intrebari vom folosi forumurile de pe moodle.

Notare

Baremul este orientativ. Fiecare asistent are o anumita libertate in evaluarea temelor (de exemplu, sa dea punctaj partial pentru implementarea incompleta a unei functionalitati sau sa scada pentru hard coding). Acelasi lucru este valabil atat pentru functionalitatile obligatorii, cat si pentru bonusuri.

Tema trebuie incarcata pe moodle. Pentru a fi punctata, tema trebuie prezentata la laborator. Vor exista laboratoare speciale de prezentare a temelor (care vor fi anuntate).

Indicatii suplimentare

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. In fisierul LabList.h trebuie adaugata si calea catre header-ul temei. De exemplu: #include <Laboratoare/Tema1/Tema1.h>

Arhivarea proiectului

  • in mod normal arhiva trebuie sa contina toate resursele necesare compilarii si rularii
  • inainte de a face arhiva asigurati-va ca ati dat clean la proiect
    • click dreapta pe proiect in Solution ExplorerClean Solution, sau
    • stergeti folderul /Visual Studio/obj
  • stergeti fisierul /Visual Studio/Framework_EGC.sdf (in caz ca exista)
  • stergeti fisierul /Visual Studio/Framework_EGC.VC.db (in caz ca exista)
  • stergeti folderul /.vs (in caz ca exista)
  • stergeti folderul /x64 sau /x86 (in caz ca exista)
    • executabilul final este generat in folderul /x86 sau /x64 la finalul link-editarii in functie de arhitectura aleasa la compilare (32/64 biti)
  • in cazul in care arhiva tot depaseste limita de 20MB (nu ar trebui), puteti sa stergeti si folderul /libs sau /Resources intrucat se pot adauga la testare. Nu este recomandat sa faceti acest lucru intrucat ingreuneaza mult testarea in cazul in care versiunea curenta a librariilor/resurselor difera de versiunea utilizata la momentul scrierii temei.

Deadline tema

3 noiembrie ora 23:55