Silnik gier: fizyka 2D (Faza 3)
Silnik gier Moonlight nauczył się grawitacji. Faza 3 dodaje pełną fizykę 2D: ciała sztywne, kolizje i strefy wyzwalaczy — wszystko spięte z systemem sygnałów, którym gra już mówi.
Co potrafi fizyka
- Trzy rodzaje ciał — statyczne (podłogi, ściany), kinematyczne (poruszane przez grę, np. ruchome platformy) i dynamiczne (spadają, obracają się, zderzają — pełna symulacja brył sztywnych na sprawdzonym, otwartym silniku fizycznym).
- Kolidery do wyboru — prostokąt, koło albo wypukły wielokąt, każdy z gęstością, tarciem i sprężystością; kształt można dowolnie przesunąć i obrócić względem ciała.
- Strefy (sensory) — obszary, które niczego nie odpychają, ale zgłaszają każde wejście i wyjście obiektu. Checkpointy, pułapki, zbieranie monet — wszystko na jednym mechanizmie.
- Kolizje jako sygnały — zderzenie emituje sygnał na obu ciałach, strefa na sobie, z identyfikatorem drugiego obiektu w argumencie. Skrypt Lua i graf zdarzeń reagują na fizykę dokładnie tak samo, jak na wszystko inne w silniku — zero specjalnych przypadków.
Wygoda: myślisz w pikselach
Silniki fizyczne liczą w metrach — twórca nie musi o tym wiedzieć. W Moonlight grawitację, prędkości i rozmiary podaje się w pikselach (domyślna grawitacja: 980 px/s² w dół), a przeliczenia dzieją się wewnątrz, na granicy symulacji.
Stabilność: stały krok + płynny obraz
Fizyka liczy się stałym krokiem czasu — ta sama scena zachowuje się tak samo niezależnie od mocy komputera, bez tunelowania przy skokach klatek. Obraz pozostaje idealnie płynny, bo renderer interpoluje pozycje między krokami symulacji (fundament z poprzednich faz — tu po prostu zaczął działać dla ciał fizycznych automatycznie).
Demo w oknie Play
Skrzynki spadają z góry ekranu, koziołkują, lądują na podłodze i układają się w stos. Strefa w połowie ekranu loguje każdy przelot. Jeden klawisz dosypuje kolejne skrzynki na wierzch stosu. Wszystko w kilkudziesięciu linijkach kodu sceny — reszta to silnik.
Co dalej?
Przed nami serce rozgrywki: pełny graf zdarzeń (programowanie wizualne) i komponenty skryptowe z prawdziwą pętlą gry — zbieranie, licznik punktów, restart. Potem dźwięk i UI.