JS Platformer – dane poziomów wydzielone do osobnego pliku.

Po ostatnim poście czas na coś bardziej konkretnego. Pomimo tego, że z wierzchu nie widać żadnej zmiany, w grze zmieniło się co nieco.

Odłączyłem dane przechowujące informacje o poziomie od głównego stanu gry. Dzięki temu w jednym stanie mogę teraz wyświetlać różne poziomy. Przy okazji będzie też znacznie łatwiej zarządzać tymi danymi.

javascript noob konkurs daj się poznać

Tym razem nie będę linkował do aktualnej wersji gry, ponieważ sama gra pozostała taka sama. Zmiany zaszły w głębi kodu.

Kluczową z tych zmian jest nowy plik zawierający dane poziomów. Jego treść można obejrzeć tutaj. Jak widać moduł ten zawiera jedną tablicę, której elementy to obiekty reprezentujące poziomy gry. Każdy z tych elementów to obiekt o wielu polach. Pola te zawierają dane o wszystkich elementach poziomu. Są tu informacje o wszystkich platformach, przeciwnikach, rozmiarze świata, czy początkowych współrzędnych gracza.

Moduł eksportuje jedną metodę – getLevel. Służy ona do zwracania danych z wybranego elementu głównej tablicy, czyli wszystkich informacji o konkretnym poziomie. Oczywiście w tej chwili są tu szczegóły opisujące tylko jeden poziom, ale już niedługo poziomów gry będzie trochę więcej 🙂

Moduł zawierający dane etapów importowany jest oczywiście w głównym stanie gry. Podczas inicjalizacji stanu, pobierany jest odpowiedni element z głównej tablicy modułu levels (ten, który zawiera dane o aktualnym poziomie 🙂 ).

Następnie kod iteruje po uzyskanych w ten sposób danych i ustawia wszystkie obiekty na odpowiednich miejscach 🙂 . Reszta gry działa tak jak do tej pory.

Informacja o tym, na którym poziomie znajduje się obecnie gracz przechowywana jest w osobnym module – config. Dodałem tam też odpowiednie metody do pobierania i manipulowania tą wartością.

Tyle na dziś. Mam już wszystko co potrzebuję aby stworzyć więcej poziomów w grze. Kolejnym krokiem będzie dodanie pierwszych ‚prawdziwych’ etapów. Stay tuned 🙂 .

Na koniec oczywiście zapraszam do polubienia mojej strony na facebooku. Warto to zrobić jeśli chce się być na bieżąco. Regularnie zamieszczam tam informacje o nowościach w moich projektach.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *