Wygląda na to, że wszyscy grają komputerowo z frameworkiem reaktywnego banana, więc musiałem spróbować. Jednak utknąłem w początkowych krokach, próbując opisać dane gry jako typy reaktywne-bananowe Behavior
.Jak sprawić, by Zachowania zawierały inne zachowania w reaktywnym bananie?
Zasadniczo próbuję mieć (zmieniającą) listę postaci w grze (takich jak Frodo lub Sam). Znaki gry mogą być aktualizowane na każdym teście gry (wzorowanym na wydarzeniu typu "tick"). Chodzi o to, że za każdym razem, gdy zmienia się postać gry, uruchamiany jest pojedynczy Event (Character)
, a aktualizacja postaci jest ostatecznie wysyłana przez sieć. Zaletą tego w porównaniu do przykładu Asteroids.hs powinno być to, że cały stan gry (cała lista postaci w grze) nie musi być przesłany przez sieć, ponieważ będzie kilka zdarzeń mających jedną postać gry zamiast pojedyncze wydarzenie z listą postaci do gry.
Dla jednej postaci gry działa to dobrze! Stworzyłem Behavior (Character)
z mapaccum
, aby sygnał aktualizacji znaku został wysłany po aktualizacji postaci. Problem, którego nie mogę rozwiązać, polega na tym, jak zrobić to z listą postaci z gry w wersji Behavior
.
Próbuję modelować listę postaci w grze jako Behavior
, ponieważ postacie mogą przychodzić i odchodzić podczas gry. Czy muszę tu używać przełączania zdarzeń dynamicznych? Lub jeśli nie używam Behavior
z poszczególnymi postaciami gry (i używam tylko Behavior
z listą znaków gry), czy istnieje sposób warunkowego wyzwalania aktualizacji podczas przechodzenia przez listę postaci? Czy nie rozumiem tutaj czegoś?
W porządku, pomyślałem, że tak może być. Przypuszczam, że wypróbuję sposób "Zachowania kolekcji", o którym wspomniałeś i odfiltrujesz niezmienione postacie później. – ipuustin
W szczególności, myślę, że użyję funkcji 'rozlewania' do podzielenia zdarzenia, że lista znaków jest aktualizowana do kilku zdarzeń w celu aktualizacji pojedynczego znaku. – ipuustin