JS Platformer – Lepszy przewijający ekran gry

Ciąg dalszy korzystania z wolnego weekendu. Dziś przede wszystkim skupiłem się na wspomnianym ostatnio ulepszeniu ekranu gry. To nie jest jednak jedyna zmiana. Posprzątałem trochę kod, wyrzuciłem trochę bugów, znalazłem trochę bugów… czyli, ciekawe czasy 🙂

javascript noob tworzenie gier platformowych

Nowa wersja gry podlinkowana jest do obrazka. Główna zmiana to zachowanie przewijającego się ekranu gry, a dokładnie tego jak wygląda to przewijanie i jak ekran się pozycjonuj. Widoczność zależy teraz od tego, w którą stronę ‚patrzy’ gracz. Jeśli gracz zwrócony jest w prawo, ekran pokazuje więcej świata z tej strony. Jeżeli gracz obróci się w lewo, ekran przesunie się tak aby pokazywać głównie świat znajdujący się dotychczas za graczem.

Zasada jest taka, że tylko jedna trzecia ekranu pokazuje świat znajdujący się za plecami gracza. Pozostałe dwie trzecie ekranu to świat znajdujący się w kierunku, w którym zmierza gracz. Najlepszy sposób aby zobaczyć o co chodzi to włączyć aktualną wersję gry (link w obrazku powyżej) i pochodzenie trochę po platformach.

Ale to nie wszystko, można też ‚spojrzeć’ w górę lub w dół. Skoro i tak jest już używana w grze myszki, to czemu by nie wykorzystać jej również do poruszania ekranem. Wystarczy wskazać kursorem przestrzeń blisko górnej lub dolnej krawędzi ekranu, żeby ten przesunął się lekko w górę lub w dół.

Trzeba jednak pamiętać, że ekran, tak jak gracz, nie może wyjść po za granice świata gry. Ponieważ, postać rozpoczyna grę w lewym dolnym rogu świata, efekty te nie będą od razu widoczne. ‚Wzrok’ gracza nie sięga za daleko 🙂 .

Jeżeli chodzi o techniczny aspekt tej zmiany, to znów nie zmieniło się specjalnie dużo. Logikę aktualizacji ekranu przeniosłem z modułu stanu gry do modułu ekranu. Tak naprawdę powinna być tam od samego początku. Oczywiście została ona przy okazji odpowiednio poszerzona. Dodałem przede wszystkim warunki sprawdzające gdzie znajduje się aktualnie gracz a gdzie ekran, i czy ten drugi nie powinien zostać przesunięty. Dla chcących dokładniej zobaczyć jak to zrobiłem zachęcam do zajrzenia na mojego gita. Kod o którym mówię znajduje się w repo gry w katalogu Config w pliku screen.js.

Druga nowość jest znacznie mniejsza ale też bardzo efektowna. Nie napiszę dokładnie co to, spróbujcie odnaleźć ją sami. Podpowiedź: ma to coś wspólnego z lawą i jest to efekt wizualny 🙂 Jak ktoś znajdzie to o czym piszę, niech koniecznie da znać w komentarzu!

Po za tym nie nastąpiły żadne większe zmiany w projekcie, trochę poszperałem w kodzie i uporządkowałem trochę rzeczy. Sporo czasu spędziłem na testach aktualnej wersji gry, funkcjonalności jest powoli coraz więcej, więc przy pobieżnym testowaniu pewne rzeczy umykają. Zazwyczaj sprawdzam tylko czy działa to co właśnie przed chwilą dodałem, nie przeprowadzam dokładniejszych testów. Wygląda jednak na to, że będę musiał zmienić ten nawyk, bo trochę błędów się znalazło. W readme projektu na gicie, będzie aktualna lista błędów, o których wiem.

I to tyle na dziś. Jak zwykle zachęcam do polubienia strony na FB. Dajcie znać czy podobają wam się dochodzące zmiany, czy nie. Za każdą opinię i radę będę bardzo wdzięczny. Najlepszym miejscem na kontakt ze mną są komentarze poniżej, ale na pytania zadane przez facebook’a też na pewno odpowiem.

2 thoughts on “JS Platformer – Lepszy przewijający ekran gry”

  1. Strzelając pociskami w lawę, pociski zamiast „rozbryzgiwać się” na czerwono, tak jak w przypadku kolizji np. z platformami, „dymi”. Drobiazg, ale fajny 🙂 Dodaje grze „autentyczności”, którą lubię w grach, mimo, że nie są symulatorami rzeczywistości. Niby nic ważnego, ale dzięki takim smaczkom, przyjemniejszy odbiór gry. Szczególnie, że jak zauważyłem, efekt ten nie jest zawsze taki sam tylko są różne „dymki”.

    Jakby dodać jeszcze efekty dźwiękowe (różne w zależności od rodzaju kolizji pocisków) to by było już całkiem w pytkę. Zakładam, że takowe kiedyś się pojawią 😉

    1. Dokładnie tak! Po strzeleniu w lawę pojawia się dym 😉 „Dymki” są różne bo efekt jest losowy. Ale tak jak piszesz, to tylko bajer. W sumie nie powinienem nawet się teraz tym zajmować. Muszę najpierw skończyć pracę nad podstawową logiką i architekturą gry. Ale trzeba mieć coś od życia, to się pobawiłem cząsteczkami. Zajęło to tylko chwilę 😛

      Dźwięki też powinny prędzej czy później się pojawić, tak samo jak prawdziwa grafika. W końcu to nie ma być gra o bezszelestnych prostokątach :).

Dodaj komentarz

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