Maintenant que vous connaissez la structure d'une fonction, il est temps de construire la vôtre (deux en réalité !).
Dans l’exercice précédent, vous avez écrit les lignes de code permettant d’infliger des blessures à un personnage dans Fortnite. Il serait intéressant de ne pas avoir à saisir les mêmes lignes chaque fois que vous avez besoin de ce code.
-
Déclarez une fonction nommée
HurtPlayer(). Cette fonction aura un type de retourvoid, ce qui signifie qu'elle ne renverra pas de valeur. Placez la déclaration de fonction à la toute fin de votre fichier Verse. Le corps de la fonction est le même code que celui de leçon 5 : À vous de joueur. Consultez donc cette leçon si vous avez besoin d'un rappel.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)Dans la mesure où vous ne pouvez pas définir une fonction à l'intérieur d'une autre fonction, assurez-vous que toutes vos fonctions sont mises en retrait au même niveau que
OnBegin(). -
Vous disposez maintenant d'une fonction que vous pouvez utiliser chaque fois que vous souhaitez infliger des blessures à un personnage. La déclaration d'une fonction n’exécute néanmoins pas le code contenu dans le corps de la fonction. Pour ce faire, vous devez appeler la fonction. Veillez à appeler ces fonctions dans
OnBegin().HurtPlayer() Print("Player Hurt") -
À ce stade, vous savez sans doute déjà qu'il existe aussi une méthode permettant de guérir un personnage. Il s’agit de la méthode
Heal(), que vous pouvez appeler exactement de la même façon que vous appelezDamage(). Créez votre fonctionHealPlayer()à la fin de votre fichier Verse en utilisant ce code.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) -
Maintenant, ajoutez l'appel à
HealPlayer()aux appels de fonction dans le corps d'OnBegin().HurtPlayer() Print("Player Hurt") Sleep(5.0) HealPlayer() Print("Player Healed")
Vous remarquerez peut-être la présence d’un nouvel appel à la fonction Sleep(). En fait, Sleep() met en attente le programme avant de continuer à exécuter le code qui suit. Le temps d'attente est déterminé par le paramètre que vous transmettez à Sleep(), représenté en secondes. Nous verrons ces paramètres plus en détail dans une leçon suivante. Sans Sleep(), HealPlayer() s'exécuterait immédiatement après HurtPlayer(), et vous n’observeriez pas l'effet des deux appels de fonction.
Script complet
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):
# S'exécute à l'activation de l'appareil dans une partie en cours.
OnBegin<override>()<suspends>:void=
HurtPlayer()
Print("Player Hurt")
Sleep(5.0)
HealPlayer()
Print("Player Healed")
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)
Leçon suivante
%learn-code-basics-7-specifying-the-result-of-a-function-in-verse:topic%