W tym kroku utworzysz system licznika czasu w Verse, który wykorzystuje urządzenie licznika czasu i urządzenie końca gry. Licznik czasu rozpocznie odliczanie, gdy gracz trafi w dowolny cel, a gra zakończy się i zostanie wyświetlona tabela wyników, gdy czas się skończy.
Chociaż możesz zakończyć grę za pomocą licznika czasu w ustawieniach wyspy lub za pomocą samych urządzeń, korzystanie z Verse zwiększa kontrolę nad używaną mechaniką gry.
Modyfikacja wyspy
Wybierz urządzenie ustawień wyspy w oknie wizualizacji lub panelu Outlinera.
W panelu szczegółów ustaw następujące parametry:
Odznacz Statystyka do zakończenia. Powoduje to usunięcie pierwotnego warunku zakończenia punktacji, który zostanie zastąpiony przez licznik czasu.
Ustaw Czas wyświetlania wyników gry na 10 sekund.
Włącz opcję Pierwsza kolumna tabeli, a następnie ustaw na Wynik.
Użyj przeglądarki zawartości, aby znaleźć urządzenie licznika czasu, a następnie przeciągnij je do okna wizualizacji.
W panelu szczegółów ustaw Widoczność podczas gry na Ukryty. Spowoduje to ukrycie obiektu licznika czasu podczas gry, ale czas nadal będzie wyświetlany na interfejsie gracza, gdy jest on aktywny.
Użyj przeglądarki zawartości, aby znaleźć urządzenie końca gry, a następnie przeciągnij je do okna wizualizacji.
Pisanie kodu Verse
Na tej stronie przedstawiono szczegółowe instrukcje dotyczące zmian w kodzie, ale jeśli chcesz sprawdzić swoją pracę, zapoznaj się z sekcją Kompletny kod, aby zobaczyć ostateczny wynik.
Otwórz plik
shooting_range_manager_device.verse.Dodaj następujące zmienne, aby zapisać nowe odwołania do urządzeń oraz flagę logiczną do śledzenia stanu licznika czasu.
Zmienna flagi odnosi się do zmiennej w kodzie, która służy do śledzenia, czy określony warunek został spełniony.
IsTimerStartedjest tutaj flagą, gdzie false oznacza „nie”, a true oznacza „tak”.Verse@editable Timer:timer_device = timer_device{} @editable EndGame:end_game_device = end_game_device{} var IsTimerStarted:logic = falseDodaj metodę wywołania zwrotnego
OnTimerSuccess, która zostanie wywołana po upływie czasu na liczniku, aby zakończyć grę.Metoda OnTimerSuccess otrzymuje opcjonalny parametr agenta, który jest agentem aktywującym licznik czasu, jeśli taki istnieje. Urządzenie końca gry wymaga nieopcjonalnego parametru agenta do aktywacji, więc agent opcjonalny jest konwertowany na nieopcjonalny w poleceniu
if. Aby dowiedzieć się więcej na temat typów option, patrz: Opcja (option).Verse# When time runs out, end the game. OnTimerSuccess(Agent:?agent):void= if (TriggerAgent := Agent?): EndGame.Activate(TriggerAgent)Dodaj metodę StartTimer, która konfiguruje subskrypcję licznika czasu do wywołania zwrotnego OnTimerSuccess i uruchamia licznik czasu.
Verse# Setup and start the timer. StartTimer():void= # Set the event subscription to call OnTimerSuccess when the timer finishes. Timer.SuccessEvent.Subscribe(OnTimerSuccess) # Start the timer. Timer.Start() # Track that the timer has started. set IsTimerStarted = trueZmodyfikuj metodę AdjustScore, aby uruchomić licznik czasu. Daje to graczowi chwilę na przygotowanie pierwszego strzału, aby rozpocząć grę.
Verse# Adjusts the player's score by the provided value. AdjustScore(Value:int):void= <# --- New Code Start --- #> # Start the timer if it hasn't started yet. if (not IsTimerStarted?): StartTimer() <# --- New Code End --- #>Zapisz i skompiluj kod Verse.
Gotowy kod
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
# A device that manages shooting range gameplay.
shooting_range_manager_device := class(creative_device):
@editable
ScoreManager:score_manager_device = score_manager_device{}
@editable
Połączenie wszystkiego w całość
Wybierz shooting_range_manager_device w oknie wizualizacji lub panelu Outliner.
W panelu szczegółów ustaw następujące parametry:
Ustaw Timer na urządzenie licznika czasu.
Ustaw EndGame na urządzenie końca gry.
Wypchnij zmiany i przetestuj swoją wyspę.
Sprawdź, czy licznik czasu uruchamia się podczas strzelania do dowolnego celu.
Sprawdź, czy po upływie czasu odliczanego licznikiem gra się kończy i wyświetla się tabela wyników.
Jedziemy dalej?
3. Cel z bonusowym czasem
Nagradzaj graczy dodatkowym celem-niespodzianką, dzięki któremu mogą zyskać cenne sekundy w grze!