11.07.2026 09:19

Silnik gier: fizyka 2D (Faza 3)

⏱️ 2 min czytania
Udostępnij:

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.

📚 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.