Constantes
Una constante es una ubicación donde se almacena un valor y su valor no puede cambiar durante el tiempo de ejecución de un programa.
Para crear una constante, tienes que especificar su identificador y tipo, lo que se conoce como declarar una constante, y proporcionar un valor para la constante, lo que se conoce como inicializar una constante.
Una constante debe inicializarse al declararla y debe declararse antes de poder usarla.
La creación de constantes tiene la siguiente sintaxis:
Identifier : type = expressionLas constantes declaradas en una función pueden omitir el tipo:
Identifier := expressionSi se omite el tipo, el tipo de la constante se infiere de la expresión usada para inicializar la constante. Solo las constantes locales pueden omitir el tipo porque el tipo describe cómo puede usarse la constante. Una constante en un módulo forma parte de la interfaz del módulo que la contiene. Sin el tipo, la interfaz es no obvia.
En el siguiente ejemplo, se genera un número aleatorio en cada iteración del bucle y se usa para inicializar la constante RandomNumber. El número aleatorio solo interrumpirá el bucle si es menor de veinte.
loop:
Limit := 20
# For local constants, the type can be omitted.
RandomNumber : int = GetRandomNumber()
# Providing the type explicitly can make the code easier to read.
if (RandomNumber < Limit):
breakTen en cuenta que, en cada iteración del bucle, se introduce una nueva constante denominada RandomNumber y se asigna el resultado de GetRandomNumber() como su valor.
Variables
Además de las constantes que se describen arriba, Verse también tiene variables.
Las variables son similares a las constantes, pero se definen con la palabra clave var, lo que significa que puedes cambiar sus valores en cualquier momento.
Por ejemplo:
var MaxHealthUpgrade : int = 10Es una variable entera y su valor no siempre es 10.
La sintaxis para la creación de variables es la siguiente:
var Identifier : type = expressionTen en cuenta que se debe especificar explícitamente el tipo de las variables.
Después de crear una variable, puedes asignarle un valor diferente con la siguiente sintaxis:
set Identifier = expressionAdemás de =, es posible usar una variedad de otros operadores para mutar una variable. Por ejemplo:
var X:int = 0
set X += 1
set X *= 2Variables globales
Una variable definida en un módulo es global para cualquier instancia de juego que se ejecuta en el ámbito de esa variable.
Una forma de declarar una variable con ámbito de módulo en Verse es usar el tipo weak_map(session, t) donde el tipo clave es el tipo de la instancia actual de la isla de Fortnite, o session, y el tipo de valor es cualquier tipo t. Para obtener información sobre weak_map, consulta Mapa.
En el siguiente ejemplo se muestra cómo crear una variable global de número entero llamada GlobalInt que aumenta cada vez que se llama a ExampleFunction().
using { /Verse.org/Simulation } # For session
var GlobalInt:weak_map(session, int) = map{}
ExampleFunction():void=
X := if (Y := GlobalInt[GetSession()]) then Y + 1 else 0
if:
set GlobalInt[GetSession()] = X
Print("{X}")Las variables con ámbito de módulo que utilizan el tipo session como clave tienen las siguientes limitaciones:
Solo puedes acceder a los valores de la sesión actual en la que te encuentras, no a los de cualquier otra sesión.
La variable con ámbito de módulo
weak_mapno se puede leer ni escribir completamente, por lo que no es posible leer o anular los valores de todas las sesiones.No puedes iterar a través de los valores de un
weak_mapo ver cuántas sesiones están activas en la actualidad, porque unweak_mapno tiene longitud.
Datos persistentes
A excepción de las variables con ámbito de módulo asociadas con la sesión, una variable con ámbito de módulo requiere persistencia, es decir, el almacenamiento de los datos más allá del juego actual.
Puedes declarar una variable persistente en Verse con el tipo weak_map(player, t). Cualquier tipo representado por t que sea persistente se puede almacenar y ser accesible para un jugador específico, y se pueden ver en las sesiones de juego subsiguientes. Cada vez que un jugador se une a un juego, sus datos guardados anteriores se cargan en todas las variables de ámbito de módulo de tipo weak_map(player, t).
En el siguiente ejemplo, la variable global 'weak_map' MySavedPlayerData usa el tipo de jugador como la clave y un entero como valor. Una vez que hayas definido tus datos persistentes, tendrás que inicializar los datos para cada jugador. Para hacer esto, comprueba que ya no existan datos almacenados para ese jugador y, a continuación, agrega el jugador y un valor inicial al weak_map.
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Simulation }
var MySavedPlayerData:weak_map(player, int) = map{}
# A Verse-authored creative device that can be placed in a level
persistence_example := class(creative_device):
# Runs when the device is started in a running game
Las variables con ámbito de módulo que utilizan el tipo player como clave tienen las siguientes limitaciones:
El acceso a los datos persistentes del jugador solo se permite cuando el jugador está en la partida actual.
Si un jugador sale de un juego o no se encuentra en la sesión actual, ya no podrás almacenar sus datos ni acceder a ellos en esa sesión de juego. Si el jugador regresa o juega el mismo juego otra vez, podrás acceder a sus datos y actualizarlos.
El
weak_mapcon ámbito de módulo no se puede leer ni escribir completamente, por lo que no es posible leer o anular los valores de todos los jugadores.No puedes iterar a través de los valores de un
weak_mapo ver cuántos jugadores tienen un registro en elweak_mapporque unweak_mapno tiene longitud.Una sola isla puede tener hasta dos variables persistentes, es decir, dos variables
weak_mapconplayercomo el tipo de clave.Como mínimo, un valor
weak_mapde una variable persistente debe ser una clase si se alcanzó el límite de variables persistentes máximas.Un solo registro de
weak_maptiene un tamaño de datos máximo de 128 kilobytes (KB) por jugador.
Para obtener más información sobre la persistencia en Verse, consulta Cómo usar datos persistentes en Verse.