11.07.2026 16:31

Silnik gier: formatowany tekst — dialogi z kolorem i ruchem

⏱️ 2 min czytania
Udostępnij:

Zaraz po polu tekstowym silnik gier 2D Moonlight Studio dostał drugą połowę układanki dialogowej: RichTextLabel — etykietę z formatowanym tekstem do okien dialogowych, opisów przedmiotów i napisów fabularnych.

Znaczniki wprost w treści

Formatowanie wpisuje się w tekst dialogu, bez żadnego dodatkowego API:

  • [color=#ffd24a]Złoto[/color] — barwi fragment (z kanałem alfa przez #RRGGBBAA; znaczniki można zagnieżdżać),
  • [wave]woda faluje[/wave] — litery płynnie bujają się na sinusoidzie,
  • [shake]lawa parzy![/shake] — litery drżą (strach, żar, trzęsienie ziemi),
  • \n łamie linię, a ustawienie szerokości pola włącza automatyczne zawijanie na spacjach.

Ruch napędza czas gry — w pauzie litery zamierają, a drżenie jest w pełni deterministyczne (bez losowości), więc powtórki i nagrania wyglądają identycznie.

Maszyna do pisania jedną linijką

Klasyczny efekt dialogu, który „pisze się sam", to w naszym silniku jedna właściwość: mp.set(pole, 'visible_chars', n) pokazuje pierwsze n znaków. Skrypt zwiększa n w czasie — i gotowe, bez timerów w silniku i bez specjalnego API.

Odporność zamiast niespodzianek

Parser nie gubi treści: nieznany albo błędny znacznik rysuje się dosłownie, samotny nawias [ w tekście nie psuje późniejszych znaczników, a złośliwie spreparowane pliki scen (gigantyczne ciągi nawiasów, absurdalne rozmiary fontu) są przycinane i przetwarzane w czasie liniowym — playerowi nie drgnie klatka.

Co dalej

Pogrubienie i kursywa (wymagają wariantów fontu) oraz pełne polskie znaki w foncie przyjdą w kolejnych wersjach. Fundament dialogów — pole tekstowe plus formatowana etykieta — jest już kompletny.

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