JS Platformer – Zmiana poziomów.

Wreszcie kolejny post 🙂 Nastąpiła krótka przerwa spowodowana majowym weekendem i obowiązkami życia codziennego, ale na szczęście już jestem z powrotem.

Bardziej czujni czytelnicy mogli zauważyć, że na koniec kwietnia już żegnałem się z tym projektem. Z jakiegoś powodu ubzdurałem sobie, że termin konkursu minął. W porę jednak zdałem sobie sprawę, że mam jeszcze miesiąc czasu. Cieszę się z tego bardzo bo wciąż jest sporo roboty mojej platformówce. Przedwczesny post podsumowujący został zdjęty i na premierę musi czekać jeszcze parę tygodni 🙂

js-platformer-zmiana-poziomow

Ostatnim razem pisałem o tym, że dane poziomów zostały wydzielone do osobnego modułu. Dzięki tej zmianie mogłem dziś dodać do gry kolejny ważny mechanizm, czyli zmianę etapów.

Nową wersję platformówki, w której mechanizm ten został już wprowadzony, wypróbować można klikając w obrazek powyżej.

Główny stan gry wczytuje dane aktualnego poziomu z zewnętrznego modułu. Każdy poziom w tym module to osobny element ogromnej tablicy zawierającej dane kolejnych etapów. Aby gracz znalazł się w kolejnym poziomie, wystarczy, że zmienię podawany do głównego stanu element na kolejny i przeładuję stan.

Najpierw, na próbę, dodałem do modułu poziomów kolejny element. Następnie bezpośrednio w kodzie zmieniłem domyślnie wczytywany poziom na nowostworzony. Zadziałało bez problemów, gra wczytywała nowy poziom 🙂 Następnym krokiem było dodanie mechanizmu zmiany tych poziomów.

Mój system zarządzania stanami gry sprawił, że było to naprawdę proste. W metodzie aktualizującej ustawiłem odpowiedni warunek. Gdy zostaje on spełniony, numer aktualnego poziomu zostaje podniesiony o jeden a stan gry jest przeładowywany. W kolejnych aktualizacjach proces ten stanie się trochę bardziej rozbudowany ale na początek chciałem dodać jak najprostsze, działające rozwiązanie.

Warunkiem ukończenia poziomu, póki co, jest dojście do odpowiedniego miejsca znajdującego się przy prawej krawędzi mapy. Obecnie miejsce to jest reprezentowane przez mały czarny prostokąt 🙂 Kolizja z tym prostokątem spowoduje, że postać zacznie opuszczać poziom. Gdy bohater zniknie za krawędzią ekranu, załaduje się kolejny etap. Na tę chwilę mam zdefiniowane tylko dwa poziomy, więc wyjście z drugiego wygeneruje błąd i ‚zawiesi’ grę. Proszę nie panikować, to spodziewane zachowanie programu 🙂

Śmierć postaci gracza sprawia, że zostaje on cofnięty z powrotem do pierwszego etapu.

Na tę chwilę to wszystko. Teraz zabieram się za testy nowego rozwiązania a następnie za rozbudowę procesu zmiany poziomu.

Już niedługo kolejne wpisy. Jeśli nie chcesz ich przegapić zachęcam do polubienia mojej strony na facebooku. Zawsze na bieżąco zamieszczam tam informacje o nowościach.

Dodaj komentarz

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