Ahora que ya conoces la estructura de una función, es hora de que construyas la tuya propia; de hecho, ¡dos!
En el último ejercicio aprendiste las líneas de código necesarias para dañar a un personaje jugador en Fortnite. Sería mejor que no tuvieras que escribir esas mismas líneas cada vez que necesitaras ese código.
-
Declara una función llamada
HurtPlayer(). Tendrá un tipo de retornovoid, lo que significa que no devolverá ningún valor. Pon la declaración de la función al final de tu archivo de Verse. El cuerpo de la función es el mismo código de la lección 5: Practice Time, así que échale un vistazo si necesitas refrescar la información.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)No puedes definir una función dentro de otra función, así que asegúrate de que todas tus funciones tienen la misma sangría que
OnBegin(). -
Ahora tienes una función que puedes utilizar cada vez que quieras hacer daño a un personaje. Pero declarar una función no ejecuta el código del cuerpo de la función. Para ello, tienes que llamar a la función. Asegúrate de llamar a estas funciones dentro de
OnBegin().HurtPlayer() Print("Jugador herido") -
A estas alturas ya habrás adivinado que también hay un método que cura a un personaje. Se llama
Heal()y puedes llamarlo exactamente igual que aDamage(). Crea tu funciónHealPlayer()al final de tu archivo de Verse utilizando este código.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) -
Ahora añade la llamada a
HealPlayer()a las llamadas a funciones del cuerpo deOnBegin().HurtPlayer() Print("Jugador herido") Sleep(5.0) HealPlayer() Print("Jugador curado")
Puede que notes que hay una nueva llamada a la función Sleep(). Básicamente, Sleep() hace que el programa espere antes de continuar ejecutando el código que viene después. El tiempo de espera viene determinado por el parámetro que pases a Sleep(), representado en segundos (aprenderás más sobre los parámetros en una lección posterior). Sin Sleep() aquí, HealPlayer() se ejecutaría inmediatamente después de HurtPlayer(), y no notarías el efecto de ambas llamadas a la función.
Secuencia de comandos completa
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):
# Se ejecuta cuando se inicia el dispositivo en un juego en ejecución
OnBegin<override>()<suspends>:void=
HurtPlayer()
Print("Jugador herido")
Sleep(5.0)
HealPlayer()
Print("Jugador curado")
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)
Siguiente lección
%learn-code-basics-7-specifying-the-result-of-a-function-in-verse:topic%