12.07.2026 00:25

Silnik gier: płynne przejścia wartości ze skryptu (tween)

⏱️ 2 min read
Share:

Silnik gier 2D Moonlight Studio dostał tween — płynną zmianę właściwości węzła w czasie, sterowaną wprost ze skryptu gry. Zamiast ustawić wartość natychmiast, każesz jej „dopłynąć" do celu w zadanym czasie z wybraną krzywą. To codzienny budulec game-feelu: wjazd panelu, zanik postaci, płynna zmiana pory dnia, sprężysty odskok.

Jedna linijka = ruch w czasie

mp.tween(panel, "y", 0, 0.3, "ease-out")   -- panel wjeżdża w 0,3 s
mp.tween(duszek, "opacity", 0, 0.5)        -- zanik w pół sekundy
mp.tween(postac, "rotation", 3.14, 1.0)    -- obrót o pół obrotu

Interpolowane właściwości (skalarne): x, y, rotation, scale_x, scale_y, opacity oraz kanały barwy modulate_r/g/b/a. Krzywa (domyślnie linear) to te same nazwy, co na osi czasu animacji — ease-in, ease-out i pozostałe.

Barwa jednym wywołaniem

Bo zmiana koloru to zwykle cztery kanały naraz, jest skrót:

mp.tween_modulate(swiat, 0.3, 0.3, 0.55, 1, 2.0)  -- świat robi się nocą w 2 s

A ponieważ barwa dziedziczy się w dół drzewa, jeden tween na korzeniu świata przyciemnia całą scenę — a HUD w warstwie ekranowej zostaje jasny.

Zachowuje się rozsądnie

  • Startuje od wartości bieżącej w chwili wywołania — nie musisz podawać punktu startu.
  • Nowy tween zastępuje poprzedni na tej samej właściwości — dwa „dojazdy" nie walczą ze sobą.
  • Pauza gry zamraża tween (chyba że węzeł działa w czasie pauzy, jak menu); po wznowieniu dokańcza.
  • Deterministyczny — te same wejścia dają dokładnie ten sam przebieg.
  • Sam się sprząta: gdy węzeł zniknie ze sceny, jego tweeny po prostu przestają istnieć.

Sterowanie

local id = mp.tween(wrog, "x", 400, 1.5, "ease-in-out")
mp.stop_tween(id)          -- przerwij konkretny
mp.stop_tweens(wrog)       -- przerwij wszystkie na węźle
local trwa = mp.is_tweening(wrog)

Co dalej

Fundament tweenowania jest gotowy. W kolejce: łączenie tweenów w sekwencje (jeden po drugim), zdarzenie „zakończono" oraz płynne przejścia dowolnej wartości logiki gry.

📚 Related posts

27.08.2026 20:55

Data, której nie cofniemy nawet my

Każdy certyfikat autorstwa dostaje datę zapisaną w blockchainie Bitcoina — takiej nie podważy nikt, my też nie. Sprawdzisz ją bez konta i bez Moonligh...
Continue reading →
27.08.2026 19:35

Twój kolor, wszędzie

Trzy tryby i siedem akcentów, wspólnych dla strony i Moonlight Animate. Motyw jedzie z kontem, profil pokazuje gościom Twoje kolory, a harmonogram sam...
Continue reading →
27.08.2026 18:31

Kto moderuje i na jakiej podstawie

Moderator to teraz osobna rola z własnym zakresem, a nie administrator w przebraniu. Odrzucenie treści wymaga powodu, który trafia do autora razem z d...
Continue reading →

📧 Stay up to date!

Join the waitlist to get notified about new Dev Blog posts and Moonlight platform launch.