Końcowa wersja platformówki posiadać będzie jeszcze kilka nowych funkcji, o których nie wspominałem. ;)
Pierwszą nową funkcją, wprowadzoną jakiś czas temu (podczas mojego ”urlopu”) jest rozszerzona funkcjonalność sterowania bohaterem. Teraz oprócz chodzenia i skakania, możliwe jest również rozglądanie się – trzeba trzymać klawisz Ctrl
i przytrzymać jednocześnie klawisz strzałki (lub dwóch strzałek, jeśli chcemy przesunąć kamerę po ukosie). Kamerę można przesunąć w poziomie maksymalnie o pięć kafli (czyli o 80px
) i w pionie o cztery kafle (czyli o 64px
). Kamera pozostaje wychylona dotąd, aż zwolnimy klawisz Ctrl
– wtedy ta płynnie centrowana jest względem bohatera, uwzględniając martwą strefę:
Wychylanie kamery i jej centrowanie jest zsynchronizowane z ruchem bohatera. To sprawia, że np. wychylając kamerę maksymalnie w prawo, następnie puszczając Ctrl
, ale trzymając wciąż strzałkę w prawo, bohater zaczyna iść, ale kamera stoi w miejscu do momentu wejścia bohatera w martwą strefę i dotknięcia jej prawej strony (analogicznie dla wychylenia i ruchu w lewo). Dzieje się tak dlatego, że szybkość wychylania i centrowania kamery jest taka sama jak szybkość ruchu bohatera w poziomie. Wyszło bardzo fajnie:
Dodałem ten ficzer dlatego, że przy większych poziomach trudno jest określić czy coś znajduje się pod/nad ekranem czy nie – w końcu rozdzielczość pionowa jest bardzo mała, a martwa strefa kamery co prawda likwiduje efekt ”skakania” ekranu nawet przy niewielkim ruchu, jednak dodatkowo zmniejsza pole widzenia. No i kosztowało to raptem kilkanaście linijek kodu, może pół godziny roboty razem z przetestowaniem wszystkich przypadków.
Drugą nowością w projekcie jest nieco inne menu główne. Wcześniej logo gry było wyświetlone po lewej stronie, bohater stał na platformie po prawej stronie i po wciśnięciu spacji szedł w prawo poza ekran. Teraz bohater stoi na logo, a po wciśnięciu spacji najpierw zeskakuje z logo na platformę, a następnie – tak jak wcześniej – idzie w prawo i wychodzi poza ekran:
Bohater tak naprawdę wcale nie stoi na logo, bo ono nie jest elementem poziomu. Trik polega na tym, że pod bohaterem znajdują się hitboksy, tak aby mógł na nich stać i po nich chodzić, ale warstwa nie zawiera w ich miejscu graficznych detali (czyli platform). Gdyby nie renderować loga, to bohater wizualnie znajdowałby się w powietrzu. Logo jest wypozycjonowane w taki sposób, aby góra liter była równo z górą hitboksów – dlatego wygląda to tak, jakby klocek chodził po literkach i z ostatniej zeskakiwał.
Trzecią nowością jest odpicowana scena staffu, o której tle napisałem przedwczoraj wpis na blogu. Co prawda nie opisałem wszystkich jej szczegółów, ale coś musi przecież pozostać do odkrycia.