Ora che conosci la struttura di una funzione, è il momento di compilarne una tua, due delle tue, in effetti!
Nell'ultimo esercizio, hai imparato le righe di codice necessarie per danneggiare un personaggio giocatore in Fortnite. Sarebbe meglio non dover digitare quelle stesse righe ogni volta che hai bisogno di quel codice.
-
Dichiara una funzione denominata
HurtPlayer(). Avrà un tipo di restituzione divoid, il che significa che non restituirà un valore. Inserisci la dichiarazione di funzione alla fine del file Verse. Il corpo della funzione è lo stesso codice della Lezione 5: È ora di fare pratica, quindi controlla quella sezione se hai bisogno di un ripasso.HurtPlayer() : void = Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Damage(50.0)Poiché non è possibile definire una funzione all'interno di un'altra funzione, accertati che tutte le funzioni siano rientrate allo stesso livello di
OnBegin(). -
Ora hai una funzione che puoi utilizzare ogni volta che vuoi danneggiare un personaggio. Tuttavia, la dichiarazione di una funzione non esegue il codice nel corpo della funzione. Per farlo, è necessario chiamare la funzione. Accertati di chiamare queste funzioni all'interno di
OnBegin().HurtPlayer() Print("Giocatore ferito") -
Ormai avrai intuito che esiste anche un metodo che guarisce un personaggio. Si chiama
Heal()e puoi chiamarlo esattamente nello stesso modo in cui chiamiDamage(). Crea la funzioneHealPlayer()alla fine del file Verse utilizzando questo codice.HealPlayer() : void = Playspace: fort_playspace = GetPlayspace() AllPlayers: []player = Playspace.GetPlayers() if (FirstPlayer : player = AllPlayers[0]): if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]): FortniteCharacter.Heal(20.0) -
Ora aggiungi la chiamata
HealPlayer()alle chiamate di funzione nel corpo diOnBegin().HurtPlayer() Print("Giocatore ferito") Sleep(5.0) HealPlayer() Print("Giocatore guarito")
Ora noterai che c'è una nuova chiamata alla funzione Sleep(). Fondamentalmente, Sleep() fa attendere il programma prima di continuare a eseguire il codice che viene dopo. Il tempo di attesa è determinato dal parametro passato a Sleep(), rappresentato in secondi. (Ulteriori informazioni su questi parametri verranno fornite in una lezione successiva.) Senza Sleep() qui, HealPlayer() verrebbe eseguito subito dopo HurtPlayer() e non si noterebbe l'effetto di entrambe le chiamate di funzione.
Script completo
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Playspaces }
using { /Verse.org/Simulation }
using { /Verse.org/Verse }
hello_world_device := class(creative_device):
# Viene eseguito quando il dispositivo viene avviato in un gioco in esecuzione
OnBegin<override>()<suspends>:void=
HurtPlayer()
Print("Giocatore ferito")
Sleep(5.0)
HealPlayer()
Print("Giocatore guarito")
HurtPlayer() : void =
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Damage(50.0)
HealPlayer() : void =
Playspace: fort_playspace = GetPlayspace()
AllPlayers: []player = Playspace.GetPlayers()
if (FirstPlayer : player = AllPlayers[0]):
if (FortniteCharacter : fort_character = FirstPlayer.GetFortCharacter[]):
FortniteCharacter.Heal(20.0)
Lezione successiva
%learn-code-basics-7-specifying-the-result-of-a-function-in-verse:topic%