13.07.2026 14:59

Silnik gier: smugi za obiektem (Trail2D)

⏱️ 2 min czytania
Udostępnij:

Nic tak nie dodaje grze „soczystości" jak dobry ślad ruchu: świecący ogon za pociskiem, smuga za dashem postaci, świetlisty łuk po machnięciu mieczem. Silnik gier 2D Moonlight Studio dostał do tego dedykowany węzeł — Trail2D.

Jak to działa

Podpinasz Trail2D pod obiekt, który się rusza. Węzeł co klatkę zapisuje swoją pozycję i rysuje z tych punktów zanikającą wstęgę — zwężającą się i gasnącą ku ogonowi. Zero kodu na klatkę: to dzieje się samo, dopóki węzeł żyje.

-- teleport bez smugi ciągnącej się przez pół mapy
mp.clear_trail(pocisk)

Detale, które łatwo przeoczyć

  • Teleport nie zostawia kreski. Kiedy obiekt skacze o duży dystans (respawn, przeniesienie przez portal), silnik sam wykrywa skok i ucina ślad — bez brzydkiej linii przez cały ekran. Możesz też przeciąć go ręcznie jednym wywołaniem.
  • Ślad lepi się do obiektu. Głowa wstęgi dociąga do aktualnej, płynnie interpolowanej pozycji — smuga nie „odstaje" kilka pikseli za obiektem.
  • Kolor bez nowego pokrętła. Barwą wstęgi jest barwa własna węzła (mp.set_self_modulate), ta sama oś co przy liniach i sprite'ach — czerwony ślag lasera to jedna linijka, a przyciemnienie sceny nocą obejmuje smugę jak wszystko inne.
  • Czas gry. Pauza zamraża ślad w miejscu; spowolnienie rozciąga jego zanikanie — smuga zachowuje się jak reszta świata gry.

Odporne na złe dane

Nieskończona czy zepsuta pozycja z pomyłki w skrypcie nigdy nie trafia do bufora (jeden NaN potrafiłby zawiesić całe nagrywanie), a bufor punktów jest czysto runtime'owy — nie zaśmieca zapisanej sceny.

Co dalej

Wstęga ma na razie jednolitą grubość i przezroczystość w obrębie segmentu — płynność bierze się z gęstości punktów. W kolejce: gradient wzdłuż śladu i teksturowana wstęga.

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