Šis projektas yra 2d C++ žaidimas, kuriame žaidėjas valdo kosminį laivą ir turi sunaikinti asteroidus šaudydamas į juos kulkomis. Naudoja SFML biblioteką grafikai ir įvykių valdymui.
Pagrindiniai komponentai yra suskirstyti į klases, kurios valdo žaidimo logiką, grafikos atvaizdavimą ir vartotojo sąveiką. Projekto struktūra apima šias pagrindines dalis:
- Pagrindinė žaidimo klasė.
- Atsakinga už lango kūrimą, žaidimo ciklo valdymą, objektų atnaujinimą ir atvaizdavimą ekrane.
- Metodai: meniu rodymas, asteroidų generavimas, kolizijų detekcija, dalelių atnaujinimas.
Erdvelaivis: Žaidėjo valdomas laivas.Asteroidas: Atsitiktinai generuojami objektai, judantys ekrane.Dalele: Maži objektai, kuriantys sprogimų efektus po susidūrimų.
- Valdoma klaviatūra ir pele.
- W, A, D klavišai ir tarpo klavišas valdo laivą ir šaudymą.
- Pelės mygtuku valdomas meniu.
main.cpp: Pagrindinis failas.Objektai.h: Antraštės failas su žaidimo objektų deklaracijomis.Objektai.cpp: Žaidimo objektų metodų aprašymai.
Kodo dokumentacija yra aprašyta naudojant Doxygen, kurią galite rasti faile DokumentacijaDoxygen.pdf.
Šiame projekte naudojami šie projektavimo šablonai:
- Factory Pattern:
- Naudojamas asteroido generavimui per generuotiAsteroida metodą.
- Composite Pattern:
- Klasė Erdvelaivis valdo kulkų kolekciją, leidžiant lengvai pridėti ir pašalinti kulkas bei atnaujinti jų būseną.
- State Pattern:
- Klasėje Erdvelaivis valdoma laivo būsena (gyvas, skrenda, laukia).
- Strategy Pattern:
- Klasės Kulka ir Dalele turi savo judėjimo ir gyvavimo strategijas, kurios įgyvendinamos jų update metoduose.
SFML (Simple and Fast Multimedia Library) naudojama šiame projekte šiais tikslais:
-
Grafikos atvaizdavimas:
- Visos žaidimo grafikos elementai, įskaitant kosminį laivą, asteroidus, kulkas, daleles ir meniu mygtukus, yra kuriami naudojant SFML formas, tokias kaip
sf::CircleShapeirsf::ConvexShape. - Žaidimo langas ir jo turinys valdomi naudojant
sf::RenderWindow.
- Visos žaidimo grafikos elementai, įskaitant kosminį laivą, asteroidus, kulkas, daleles ir meniu mygtukus, yra kuriami naudojant SFML formas, tokias kaip
-
Įvykių valdymas:
- Naudojami SFML įvykių valdymo mechanizmai (
sf::Event) žaidėjo veiksmų, tokių kaip laivo valdymas ir šaudymas, apdorojimui.
- Naudojami SFML įvykių valdymo mechanizmai (
-
Matematinės funkcijos:
- SFML vektoriai (
sf::Vector2f) naudojami judėjimo skaičiavimams, įskaitant normalizavimą, ilgio skaičiavimą ir ribų tikrinimą.
- SFML vektoriai (
-
Animacijos ir efektai:
- Naudojamos SFML transformacijos, tokios kaip pasukimas (
rotate) ir judėjimas (move), animacijoms ir judesiams žaidime sukurti.
- Naudojamos SFML transformacijos, tokios kaip pasukimas (
-
Teksto atvaizdavimas:
- Meniu ir kitų tekstinių elementų kūrimui naudojami SFML teksto objektai (
sf::Text) ir šriftai (sf::Font).
- Meniu ir kitų tekstinių elementų kūrimui naudojami SFML teksto objektai (
SFML suteikia paprastą ir efektyvų būdą valdyti žaidimo grafikos ir įvykių sistemas, leidžiant greitai ir efektyviai kurti žaidimo elementus ir juos valdyti.

