In diesem Schritt erstellst du in Verse ein Timer-System, das die Timer- und Spielbeender-Geräte verwendet. Der Timer startet, sobald der Spieler ein Ziel trifft, und das Spiel endet und zeigt die Punktetabelle an, wenn die Zeit abgelaufen ist.
Du kannst dein Spiel zwar mit den Insel-Einstellungen oder mit Geräten allein zeitgesteuert beenden, aber mit Verse hast du mehr Kontrolle über die Spielmechaniken, die du verwendest.
Ändern deiner Insel
Wähle das Inseleinstellungen-Gerät im Viewport oder Outliner-Panel aus.
Lege im Details-Panel die folgenden Parameter fest:
Deaktiviere Wert zum Beenden. Dadurch wird die ursprüngliche Bedingung für das Wertungsende entfernt und durch den Timer ersetzt.
Lege Anzeigedauer von Spielpunktzahl auf 10 Sekunden fest.
Aktiviere Erste Spalte der Punkteanzeige und lege sie dann auf Score fest.
Suche im Inhaltsbrowser nach dem Timer-Gerät und ziehe es dann in den Viewport.
Lege im Details-Panel die Option Während des Spiels sichtbar auf Ausgeblendet fest. Dadurch wird das Timer-Objekt während des Spiels ausgeblendet, die Zeit wird jedoch weiterhin auf dem HUD des Spielers angezeigt, solange es aktiv ist.
Suche im Inhaltsbrowser nach dem Spielbeender und ziehe ihn dann in den Viewport.
Schreiben von Verse-Code
Diese Seite führt dich Schritt für Schritt durch die Codeänderungen, aber wenn du deine Arbeit überprüfen möchtest, schau dir den Abschnitt Vollständiger Code an, um das Endergebnis zu sehen.
Öffne die Datei
shooting_range_manager_device.verse.Füge die folgenden Variablen hinzu, um die neuen Gerätereferenzen und ein Logik-Flag zu speichern, um den Status des Timers zu verfolgen.
Eine Flag-Variable bezieht sich auf eine Variable in deinem Code, die vorhanden ist, um zu verfolgen, ob eine bestimmte Bedingung erfüllt wurde.
IsTimerStartedist hier das Flag, wobei False für „Nein“ und True für „Ja“ steht.Verse@editable Timer:timer_device = timer_device{} @editable EndGame:end_game_device = end_game_device{} var IsTimerStarted:logic = falseFüge die Callback-Methode
OnTimerSuccesshinzu, die aufgerufen wird, wenn der Timer abgelaufen ist, um das Spiel zu beenden.Die Methode OnTimerSuccess empfängt einen optionalen Agentenparameter, der den Agenten angibt, der den Timer aktiviert hat (sofern vorhanden). Der Spielbeender erfordert zur Aktivierung einen nicht optionalen Agentenparameter. Daher wird der optionale Agent in der
if-Anweisung in einen nicht optionalen Agenten konvertiert. Weitere Informationen zu den Optionstypen findest du unter Option.Verse# When time runs out, end the game. OnTimerSuccess(Agent:?agent):void= if (TriggerAgent := Agent?): EndGame.Activate(TriggerAgent)Füge die Methode StartTimer hinzu, die das Abonnement des Timers für den OnTimerSuccess-Callback einrichtet und den Timer startet.
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 = trueÄndere die Methode AdjustScore, um den Timer zu starten. Dies gibt dem Spieler einen Moment Zeit, seinen ersten Schuss für den Spielbeginn vorzubereiten.
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 --- #>Speichere und erstelle deinen Verse-Code.
Vollständiger Code
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
Alles kommt zusammen
Wähle shooting_range_manager_device im Viewport oder Outliner-Panel aus.
Lege im Details-Panel die folgenden Parameter fest:
Lege den Timer auf das Timer-Gerät fest.
Lege EndGame auf den Spielbeender fest.
Übertrage deine Änderungen und teste deine Insel.
Überprüfe, ob der Timer startet, wenn du auf ein beliebiges Ziel schießt.
Überprüfe, ob das Spiel endet und die Anzeigetafel angezeigt wird, sobald der Timer abgelaufen ist.
Bereit für mehr?
3. Bonuszeitziel
Belohne die Spieler mit einem überraschenden zusätzlichen Ziel, das dem Spiel wertvolle Sekunden hinzufügen kann.