Strategiczna gra i SFML

Stronę tą wyświetlono już: 501 razy

Krótki opis

Od jakiegoś czasu tworzę samodzielnie grę strategiczną z wykorzystaniem grafiki 2W w układzie izometrycznym, która przy odpowiednim zaimplementowaniu algorytmu daje pewne wrażenie trójwymiarowości. Gra operuje na mapie zapisanej na dysku twardym oraz plikach zawierających definicje wszystkich obiektów i tekstur.

Działanie programu pod Linuksem z wykorzystaniem Wine:

Działanie programu pod Windowsem:

Algorytm znajdowania najkrótszej ścieżki

Wewnątrz programu wykorzystałem mój własny algorytm znajdowania najkrótszej ścieżki w bitmapie składającej się z prostokątnych pól. Program pokazujący działanie tego algorytmu został już wcześniej przeze mnie opracowany i znajduje się Programowanie → Projekty C++ → PathFinder - znajdowanie najkrótszej ścieżki.

Zastosowanie polimorfizmu

Gra jest oparta na prostym mechanizmie polimorfizmu, który okazał się niezwykle przydatny w celu przechowywania w pamięci komputera danych o obiekcie. W obecnej postaci obiekty mogą być trojakiego typu:

  • budynki (klasa building) - obiekty nieruchome;
  • czołgi (klasa tank) - obiekty ruchome;
  • podłoże (klasa ground) - obiekty opisujące podłoże danego pola mapy.

Obiekty klas wyżej wymienionych dziedziczą po wspólnym interfejsie Object.

Grafika

Tworzona przeze mnie grafika na potrzeby gry w większości tworzona była techniką pixel art. Czołg jedynie został narysowany w Inskcap-ie. Poniżej zamieszczam screen z gry, na którym widać gmach głównego bosa, oraz jego warownię.

Screen gry strategicznej tworzonej przeze mnie w C++ z wykorzystaniem biblioteki SFML
Rys. 1
Screen gry strategicznej tworzonej przeze mnie w C++ z wykorzystaniem biblioteki SFML

Dodane menu i akceleratory

Czym są akceleratory? Są to obiekty, które co jakiś odstęp czasu będą umieszczały na mapie dodatkowe obiekty. Do tych obiektów należą:

  • apteczki - które będą leczyły czołg;
  • paliwo - ponieważ czołg nie jest perpetuum mobile więc musi zużywać paliwo, a skoro zużywa paliwo to trzeba mieć możliwość jego uzupełniania;
  • amunicja - zapasy amunicji trzeba też odnawiać, wiadoma sprawa;
  • mapy i inne przydatne obiekty.

Zaznaczenie obiektu spowoduje pojawienie się jego w menu po prawej stronie okna gry. W menu na razie wyświetlana jest nazwa obiektu, jego grafika, oraz podstawowe parametry, takie jak:

  • helth (zdrowie) - punty zdrowia obiektu;
  • fuel (paliwo) - ilość litrów paliwa (dotyczy tylko obiektów ruchomych).

Już wkrótce dodane zostaną dane dotyczące dodatkowego wyposażenia jak amunicja, mapy lub inne obiekty wzbogacające np. funkcjonalność obiektów ruchomych.

Poniżej krótki filmik z gry (trochę przycina, ale to spowodowane jest przez program nagrywający).

Komentarze