Silnik gier: smugi za obiektem (Trail2D)
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.