Autor Wątek: system akcji, wątków w grze i timery...?  (Przeczytany 657 razy)

Offline zajmundov

  • Użytkownik

# Styczeń 08, 2017, 10:35:52
witajcie!
Zastanawiam się jak napisać kod, który będzie kontrolował wykonywanie różnych czynności przez obiekt.
Np. mam wybranego ludzika, który zaczyna się poruszać do pozycji x,y i zatrzymuje się na kilka sekund po czym renderuje jakaś animacja przypisania do sprita tego ludzika. Kiedy skończy się ta animacja, ludzik rusza dalej i znowu wykonuje jakąś czynność ale w tym samym momencie w GUI zaczynają się wyświetlać jakieś lampki.

Myślałem nad tym aby stworzyć tablicę na takie czynności i w pętli sprawdzać, która czynność została zakończona i posuwać się dalej po tablicy. Rozumiem, że timery to konieczność przy takich skryptach?
« Ostatnia zmiana: Styczeń 08, 2017, 10:48:05 wysłana przez zajmundov »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Hypersomnia

  • Użytkownik
    • Hypersomnia dev diary

# Styczeń 08, 2017, 12:24:50
Interesuje Cię pattern zwany "Action List":

https://gamedevelopment.tutsplus.com/tutorials/the-action-list-data-structure-good-for-ui-ai-animations-and-more--gamedev-9264

Podpowiem jeszcze, że nie ma to nic wspólnego z wątkami.
EDIT: Uważaj tylko bo ten ziomek ma jednego buga w kodzie (na co ktoś nawet mu zwrócił uwagę w komentarzu), chociaż tłumaczy ten motyw bardzo dobrze. W każdym razie możesz wpisać po prostu "Action List" w google i będziesz miał sporo fajnych tutoriali nt. tego samego. Gdybyś chciał zobaczyć działającą implementację możesz użyć/zerknąć na moją:

https://github.com/TeamHypersomnia/Hypersomnia/blob/master/augs/misc/action_list.cpp

może nie jest demonem prędkości ale co ważne bangla, użyłem jej do sekwencji w intro gdzie najpierw jest fade in, potem pojawiają się creditsy literka po literce, potem jeszcze mocniejszy fade in i rozwijają się stopniowo przyciski w menu - bardzo podobny problem do tego który opisałeś.
« Ostatnia zmiana: Styczeń 08, 2017, 15:29:36 wysłana przez Hypersomnia »

Offline zajmundov

  • Użytkownik

# Styczeń 08, 2017, 12:56:54
@up
dzięki, zabieram się zaraz za czytanie :D