11.07.2026 16:31

Silnik gier: formatowany tekst — dialogi z kolorem i ruchem

⏱️ 2 min read
Share:

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.

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