GameHUD: Funkcje

Możemy tworzyć nowe funkcje w Blueprints. Podobnie jak makra , funkcje pozwalają na zebranie zestawu działań wykonywanych w różnych częściach Blueprints w jednym miejscu w celu ułatwienia organizacji i utrzymania skryptu. Zaletą funkcji nad makrami jest to, że można je wywołać z innymi Blueprints. W porównaniu ze zdarzeniami niestandardowymi funkcje mają tę zaletę, że zwracają wartości. 

Na przykład utwórzmy funkcję o nazwie „StatueCollected” w Blueprints „GameHUD”. Ta funkcja zostanie wywołana przez Schemat „Statua”, gdy gracz zdobędzie statuetkę. Funkcja powinna wykonywać następujące czynności:

  • Dodaj do wyniku gracza punkty uzyskane podczas zbierania statuetki, które są obliczane za pomocą wyrażenia „10 X Poziom”.
  • Dodaj 1 do zmiennej „StatueCount”, która przechowuje liczbę zebranych posągów.
  • Sprawdź, czy wartość zmiennej „StatueCount” jest wielokrotnością 5. Jeśli prawda, wykonaj następujące czynności:
    • Dodaj 15 do zmiennej „Time”.
    • Dodaj 1 do zmiennej „Level”. Ogranicz maksymalną wartość poziomu w 5.

Co 5 zebranych statuetek gracz podnosi poziom i otrzymuje 15 sekund czasu.

Aby utworzyć funkcję, otwórz schemat GameHUD i przejdź do trybu „Graph”. W zakładce „MyBlueprint” kliknij przycisk „Function”, jak na obrazku poniżej.

Jako nazwę funkcji wpisz „StatueCollected”. Aby ją edytować, kliknij dwukrotnie nazwę funkcji.

Osobno pokażę czynności, które są częścią tej funkcji. Na koniec pokażę obraz zawierający pełną funkcję.

Jak na powyższej liście, pierwszą czynnością, którą należy wykonać, jest:

  • Dodaj do wyniku gracza punkty uzyskane podczas zbierania statuetki, które są obliczane za pomocą wyrażenia „10 X Poziom”.

Aby obliczyć nowe punkty, musisz użyć operatorów arytmetycznych i wyrażeń. Pierwsza część funkcji będzie wyglądać następująco:

Powyższy obrazek pokazuje, że nowa wartość zmiennej „Score” zostanie uzyskana ze starej wartości plus wynik operacji „Poziom x 10”.

Następną czynnością do wykonania jest:

  • Dodaj 1 do zmiennej „StatueCount”, która przechowuje liczbę zebranych posągów.

Ta akcja jest bardzo prosta:

Następna akcja:

  • Sprawdź, czy wartość zmiennej „StatueCount” jest wielokrotnością 5.

W tym teście będziemy musieli użyć operatorów relacyjnych i gałęzi . Ten test będzie również używał operatora „%” znanego jako moduł. Ten operator zwraca pozostałą część dzielenia. Aby znaleźć ten operator, po prostu kliknij prawym przyciskiem myszy EventGraph i wyszukaj „%”.
Oddział będzie wyglądał następująco:

Co 5 zebranych statuetek gracz podnosi poziom. Aby sprawdzić, czy zmienna „StatueCount” jest wielokrotnością 5, po prostu użyj wyrażenia „StatueCount% 5” i sprawdź, czy wynik jest równy 0. Jeśli wynik wyrażenia jest prawdziwy, oznacza to, że gracz zwiększył poziom i wtedy będziemy wykonaj dwie następne czynności.

  • Dodaj 15 do zmiennej „Time”. 

Ta akcja daje graczowi dodatkowe 15 sekund gry:

  • Dodaj 1 do zmiennej „Poziom”. Ogranicz maksymalną wartość poziomu w 5.

Ta akcja podnosi poziom gracza. Użyto operatora „MIN”, który zwraca w rezultacie najniższą wartość wejściową, tak aby wartość poziomu nigdy nie była większa niż 5:

Na tym kończymy funkcję „StatueCollected”. Pełną wersję funkcji można zobaczyć na poniższym obrazku.


Źródło:https://romeroblueprints.blogspot.com/2014/07/gamehud-function.html