GameHUD: Timer i zdarzenie niestandardowe

Przykładowa gra ma czas, który jest przechowywany w zmiennej „Czas”. Ta zmienna zaczyna się od wartości 30 i zmniejsza się o jedną jednostkę co sekundę.

Wartość tej zmiennej jest rysowana na ekranie. Późniejszy artykuł pokaże działania GameHUD, które rysują wartości zmiennych na ekranie.

Timer i Custom Event są stosowane w celu zmniejszenia wartości zmiennej „Time” co sekundę.

W planach jest akcja o nazwie „SetTimer”, która definiuje Timer . Aby go znaleźć, kliknij prawy przycisk na EventGraph w GameHUD i wpisz „timer” w polu wyszukiwania. Poniższy obraz przedstawia opcje działań związanych z „Timerem”.

Timer jest zaprogramowany do wykonywania danej funkcji (lub zdarzenia niestandardowego ) po zakończeniu określonego czasu.

W poprzednim artykule, w którym zdefiniowano zawartość makra „StartGame”, widzieliśmy, że akcja „SetTimer” została wywołana w celu zainicjowania timera z następującymi wartościami:

Ten Timerbędzie co sekundę w sposób ciągły wywoływać zdarzenie niestandardowe o nazwie „Clock”.

Znaczenie parametrów funkcji „SetTimer” jest następujące:

  • Object : obiekt zawierający licznik czasu . Wartością domyślną jest aktualny plan.
  • Function Name : nazwa funkcji (lub zdarzenie niestandardowe), która zostanie wywołana po upływie czasu.
  • Time : czas w sekundach długości timera .
  • Looping : wskazuje, czy licznik czasu będzie kontynuował wykonywanie, czy też będzie wykonywany tylko raz.

Teraz musimy utworzyć Custom Event nazwie „Zegar”.

Aby utworzyć zdarzenie niestandardowe , kliknij prawym przyciskiem myszy EventGraph, rozwiń kategorię „AddEvent” i wybierz „Custom Event …”, jak na obrazku poniżej. Wpisz nazwę wydarzenia jako „Clock”.

To nowe wydarzenie „Time” ma następujące obowiązki:

  • Zmniejsz o jeden wartość zmiennej „Time”;
  • Sprawdź, czy zmienna „Time” ma wartość zero. Jeśli tak, wykonaj następujące czynności:
    • Zdefiniuj zmienną logiczną „GameOver” z wartością „true”;
    • Wyczyść licznik czasu, aby przestać wywoływać zdarzenie „Zegar”;

Zdarzenie „Zegar” powinno wyglądać następująco:


Źródło:https://romeroblueprints.blogspot.com/2014/06/gamehud-timer-and-custom-event.html