Kontrola przepływu logiki w Blueprints

Istnieją akcje, które są używane do kontrolowania przepływu wykonywania innych akcji w Planie. Widzieliśmy niektóre z tych akcji:

  • Branch : określa przepływ na podstawie warunku;
  • For Loop : powtarza zestaw działań określoną liczbę razy.
  • Switch : określa przepływ na podstawie wartości zmiennej wejściowej.
  • Flip Flop : Przełącza między dwoma wyjściami wykonania.

Istnieją inne akcje kontroli przepływu. Zacznijmy od analizy  „Sequence”:

„Sekwencja” może być użyta do zorganizowania Akcji Planów. Po aktywacji wykonywał w kolejności wszystkie akcje powiązane z pinami wyjściowymi.

Akcja „ Zrób raz ” wykonuje tylko raz działania powiązane z pinem wyjściowym. Jako przykład zmodyfikujmy skrypt utworzony w artykule „ Korzystanie ze schematów poziomów ” . W tym przykładzie mamy wyzwalacz, który generuje eksplozję, gdy gracz się z nim zderzy. Spust został zniszczony, aby eksplozja była generowana tylko raz. Użycie akcji „Zrób raz” nie jest konieczne do zniszczenia spustu, aby eksplozja nastąpiła tylko raz. Zmodyfikowany skrypt stał się:

Nawet jeśli gracz wygeneruje nowe zdarzenia kolizji z wyzwalaczem, czynność „Zrób raz” nie pozwoli przejść przepływu wykonania. Można użyć styku wejściowego „Reset”, aby funkcja „Do Once” mogła ponownie wykonać czynności wyjściowe. Akcja „ Do N ” jest podobna do akcji „Zrób raz”, ale możemy podać, ile razy można wykonać akcje wyjściowe. W poniższym przykładzie gracz ma 3 zestawy medyczne, których używa po naciśnięciu klawisza „M”. Po trzykrotnym naciśnięciu klawisza „M” czynność przywracająca zmienną „zdrowie” nie będzie już wykonywana. Aby przeładować zestawy medyczne, gracz musi zderzyć się z aktorem typu „BP_MedKitStore”, który jest odpowiedzialny za przywrócenie apteczek gracza.

Akcja „ Brama ” może być otwarta lub zamknięta. Jeśli jest otwarty, umożliwia wykonanie działań związanych z pinem wyjściowym. Kołki wejściowe „Otwórz”, „Zamknij” i „Przełącz” służą do określenia aktualnego stanu „Bramy”. Istnieje również zmienna logiczna „Start Closed”, która określa, czy „Gate” ma zacząć działać w stanie „Closed”.

W poniższym przykładzie mamy Aktora o nazwie „HealthGenerator”. Kiedy gracz zderza się z tym aktorem, jego zdrowie będzie powoli odnawiane przy każdym „Ticku” . Jeśli gracz przestanie kolidować z „HealthGeneratorem”, „Brama” zostanie zamknięta, a akcje przywracające zdrowie nie będą już wykonywane. Akcja „Min” jest używana, aby wartość zmiennej „Zdrowie” nigdy nie przekraczała 100.

Akcję „ Multigate ” można wykorzystać na różne sposoby. Można dodać wiele pinów wyjściowych i za każdym razem, gdy “Multigate” wyzwala tylko jeden z tych pinów wyjściowych w kolejności lub losowo. Liczba pinów wyjściowych określa, ile razy zostanie wykonana funkcja „Multigate”. Istnieje jednak zmienna „Loop”, która wskazuje, czy „Multigate” powinna nadal uruchamiać piny wyjściowe. W poniższym przykładzie używamy „Multigate” z przypadkowymi wyjściami i w pętli. Kiedy gracz zderzy się z aktorem typu „RandomBonus”, skorzysta z losowego bonusu, którym może być zdrowie, złoto lub amunicja. Aby kod był prosty, akcja reprezentująca bonus wyświetla tylko komunikat na ekranie.


Źródło:https://romeroblueprints.blogspot.com/2014/12/flow-control-in-blueprints.html