Skip to content

linasbau/Asteroid-game

Repository files navigation

Projekto Aprašymas

Paskirtis

Š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.

Asteroidai_demonstracija

Projekto struktūra

Pagrindiniai komponentai yra suskirstyti į klases, kurios valdo žaidimo logiką, grafikos atvaizdavimą ir vartotojo sąveiką. Projekto struktūra apima šias pagrindines dalis:

Game Klasė

  • 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.

Žaidimo Objektai

  • Erdvelaivis: Žaidėjo valdomas laivas.
  • Asteroidas: Atsitiktinai generuojami objektai, judantys ekrane.
  • Dalele: Maži objektai, kuriantys sprogimų efektus po susidūrimų.

Vartotojo Sąveika

  • Valdoma klaviatūra ir pele.
  • W, A, D klavišai ir tarpo klavišas valdo laivą ir šaudymą.
  • Pelės mygtuku valdomas meniu.

Failų Struktūra

  • main.cpp: Pagrindinis failas.
  • Objektai.h: Antraštės failas su žaidimo objektų deklaracijomis.
  • Objektai.cpp: Žaidimo objektų metodų aprašymai.

Kodo dokumentacija

Kodo dokumentacija yra aprašyta naudojant Doxygen, kurią galite rasti faile DokumentacijaDoxygen.pdf.

Klasių diagrama

UML diagrama

Projektavimo Šablonai

Šiame projekte naudojami šie projektavimo šablonai:

  1. Factory Pattern:
    • Naudojamas asteroido generavimui per generuotiAsteroida metodą.
  2. Composite Pattern:
    • Klasė Erdvelaivis valdo kulkų kolekciją, leidžiant lengvai pridėti ir pašalinti kulkas bei atnaujinti jų būseną.
  3. State Pattern:
    • Klasėje Erdvelaivis valdoma laivo būsena (gyvas, skrenda, laukia).
  4. Strategy Pattern:
    • Klasės Kulka ir Dalele turi savo judėjimo ir gyvavimo strategijas, kurios įgyvendinamos jų update metoduose.

SFML Naudojimas

SFML (Simple and Fast Multimedia Library) naudojama šiame projekte šiais tikslais:

  1. Grafikos atvaizdavimas:

    • Visos žaidimo grafikos elementai, įskaitant kosminį laivą, asteroidus, kulkas, daleles ir meniu mygtukus, yra kuriami naudojant SFML formas, tokias kaip sf::CircleShape ir sf::ConvexShape.
    • Žaidimo langas ir jo turinys valdomi naudojant sf::RenderWindow.
  2. Įvykių valdymas:

    • Naudojami SFML įvykių valdymo mechanizmai (sf::Event) žaidėjo veiksmų, tokių kaip laivo valdymas ir šaudymas, apdorojimui.
  3. Matematinės funkcijos:

    • SFML vektoriai (sf::Vector2f) naudojami judėjimo skaičiavimams, įskaitant normalizavimą, ilgio skaičiavimą ir ribų tikrinimą.
  4. Animacijos ir efektai:

    • Naudojamos SFML transformacijos, tokios kaip pasukimas (rotate) ir judėjimas (move), animacijoms ir judesiams žaidime sukurti.
  5. Teksto atvaizdavimas:

    • Meniu ir kitų tekstinių elementų kūrimui naudojami SFML teksto objektai (sf::Text) ir šriftai (sf::Font).

SFML suteikia paprastą ir efektyvų būdą valdyti žaidimo grafikos ir įvykių sistemas, leidžiant greitai ir efektyviai kurti žaidimo elementus ir juos valdyti.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors