11.07.2026 14:06

Silnik gier: interfejs przyklejony do ekranu i sterowanie dotykowe

⏱️ 2 min czytania
Udostępnij:

Interfejs gry ma jedną zasadę: licznik punktów siedzi w rogu ekranu niezależnie od tego, co robi kamera, a przycisk klika się dokładnie tam, gdzie go widać. Ten łuk domyka obie te rzeczy w silniku gier 2D — i dokłada sterowanie ekranowe pod przyszłe telefony.

Kotwice ekranu

Każdy element na warstwie ekranowej może dostać kotwicę — jedną z dziewięciu pozycji (rogi, krawędzie, środek). Pozycja elementu staje się odsunięciem od tego punktu, więc pasek życia trzyma się lewego górnego rogu, a przycisk pauzy prawego — przy każdym rozmiarze okna gry. Dzieci kotwiczonego elementu jadą razem z nim, więc całe panele buduje się raz.

Klik trafia tam, gdzie widzisz

Trafianie w przyciski zostało przepisane na jedną, wspólną matematykę z rendererem: wskaźnik przechodzi przez odwrotność pełnej transformacji elementu — tej samej, którą element jest rysowany. Efekt: interfejs ekranowy klika się w pikselach ekranu niezależnie od kamery, przyciski osadzone w świecie gry uwzględniają jej przesunięcie i zoom, a przeskalowany albo obrócony panel ma obszar klikania dokładnie tak duży i tak obrócony, jak wygląda. Przy okazji wyszła i została załatana subtelność wysokich rozdzielczości: na ekranach HiDPI współrzędne myszy potrafiły być liczone w innej skali niż obraz gry.

Przyciski ekranowe i wirtualny joystick

Pod przyszłe wydania mobilne (i już dziś pod mysz) doszły dwa węzły sterowania: przycisk ekranowy oraz wirtualny joystick. Oba mapują się wprost na akcje mapy wejścia — logika gry dalej pyta „czy wciśnięto skok?", nie wiedząc, czy źródłem był klawisz, pad, czy palec na ekranie. Przycisk trzyma akcję póki jest wciśnięty (i grzecznie ją zwalnia przy zsunięciu palca, zmianie sceny czy utracie fokusu), joystick wciska akcje kierunkowe z martwą strefą, a skrypty mogą też czytać analogowe wychylenie drążka. Grafika kontrolek to zwykłe sprite'y-dzieci — wyglądają dokładnie tak, jak narysuje je twórca.

Całość pokrywają testy uruchamiane bez okna — od poprawnego „pojedynczego strzału" akcji ekranowej co dotknięcie, przez klikanie przy rozjechanej kamerze, po skalowane panele. Pełna rodzina widżetów interfejsu (pola tekstowe, okna dialogowe, kontenery układu) ma już fundament, na którym stanie w kolejnych łukach.

📚 Powiązane posty

14.07.2026 22:19

Silnik gier: od szablonu do grywalnej gry RPG top-down

Startowy szablon silnika gier to teraz kompletny, grywalny wycinek gry RPG top-down: chodzenie po siatce, rozmowy z postaciami, przeciwnik goniący gdy...
Czytaj dalej →
14.07.2026 19:16

Moonlight Animate — system dialogów w grach

Silnik gier 2D w Moonlight Animate ma teraz kompletny system dialogów: kwestie z efektem maszyny do pisania, wybory z warunkami, zmienne fabularne i g...
Czytaj dalej →
14.07.2026 18:40

Moonlight Animate: ruchoma panorama dźwięku także w wyeksportowanym wideo

Dźwięk przejeżdżający z lewego do prawego głośnika brzmiał dobrze w podglądzie, ale eksport przez serwer zamrażał go w miejscu. Ostatnia luka parytetu...
Czytaj dalej →

📧 Bądź na bieżąco!

Zapisz się na listę oczekujących, aby otrzymywać powiadomienia o nowych postach na Dev Blog oraz informacje o starcie platformy Moonlight.