Silnik gier: animacja postaci sterowana stanem
Silnik gier 2D Moonlight Studio dostał animację postaci sterowaną stanem — sposób, w którym bohater sam gra właściwą animację (stoi, idzie, skacze), a Ty tylko mówisz, w jakim jest stanie.
Nazwane animacje w jednym duszku
Zamiast żonglować listami klatek, animowany duszek trzyma osobne, nazwane klipy — idle, walk, jump, attack — każdy z własną prędkością i pętlą. Przełączasz się między nimi jedną nazwą:
mp.play_animation(bohater, 'jump')
Animacja nadąża za stanem gry
Najwygodniej wskazać klucz stanu i pozwolić, by duszek sam dobierał klip:
mp.set(bohater, 'state', 'walk') -- gra "walk"
mp.set(bohater, 'state', 'idle') -- gra "idle"
Logika gry ustawia stan, a animacja podąża sama — zero ręcznego okablowania. mp.current_animation(bohater) w każdej chwili powie, co aktualnie gra.
Skok, który się nie urywa
Animacje jednorazowe — skok, cios, oberwanie — mają swoją pułapkę: łatwo je uciąć, gdy stan ciągle wskazuje „walk". Silnik pilnuje tego za Ciebie: animacja bez pętli odpalona przez mp.play_animation dogrywa do końca, mimo że stan pozostaje niezmieniony, a dopiero po jej zakończeniu bohater wraca do animacji ruchu. Skok wygląda jak skok, nie jak jedna migawka.
Co dalej
Nadchodzą płynne przejścia między animacjami (mieszanie zamiast twardego cięcia) oraz drzewo animacji łączące wiele warstw ruchu naraz — na razie fundament „postać animuje się wg stanu, sama" jest gotowy.