Strategiczna gra i SFML

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 5658 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:

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żą:

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:

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

Propozycje książek