Constantes e variáveis representam locais de memória usados para armazenar valores.
Uma constante recebe seu valor na inicialização e este valor não pode ser modificado durante a execução do programa.
Uma variável pode ter seu valor modificado a qualquer momento.
A criação de constantes e variáveis é parecida. A única diferença está no uso da palavra chave var para indicar que é uma variável. Este é o formato da criação:
var Identificador : tipo = inicialização
Vamos analisar cada elemento da linha acima:
- var : Usado para indicar a criação de uma variável. Se for omitido, significa que uma constante está sendo criada.
- Identificador : Nome da constante ou variável.
- tipo : Indica o tipo de valores que poderá ser armazenado.
- inicialização : Expressão usada para gerar um valor inicial para a constante ou variável.
Existem diversos tipos que podem ser usados nas constantes e variáveis. Os tipos mais comuns estão descritos abaixo:
- logic : Só pode armazenar os valores Booleano true ou false.
- int : Armazena valores inteiros.
- float : Pode armazenar valores numéricos que não são inteiros.
- string : Usado para armazenar texto (sequência de caracteres).
- Reference : Usada para referenciar instâncias de uma classe. Por exemplo, um dispositivo criativo que está no nível.
Identificador := inicialização
Vamos criar um dispositivo simples no UEFN para vermos exemplos de uso das constantes e variáveis.
Em qualquer projeto UEFN, abra o Verse Explorer, clique com o botão-direito no nome do projeto e escolha a opção Add new Verse file to project.
Selecione o template Verse Device. Em Device Name coloque const_var_device e clique no botão Create para usar o código do template.
Modifique o código Verse do dispositivo const_var_device para ficar com este conteúdo:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
const_var_device := class(creative_device):
# logic: Valores Booleano (true ou false)
@editable
StartTimer : logic = false
# string: Armazena texto. "" é uma string vazia
@editable
Name : string = ""
# float: Aceita valores numéricos que não são inteiros
@editable
HeightInMeters : float = 1.80
# var: Indica que é uma variável.
# int: Armazena valores inteiros.
var NameLength : int = 0
# Esta constante é uma referência para uma instância da classe timer_device
@editable
TimerDevice : timer_device = timer_device{}
# Esta função executa quando o dispositivo é iniciado no jogo
OnBegin<override>()<suspends>:void=
# O tipo string da constante WelcomeMsg foi inferido a partir da expressão.
# {Name} será substituído pelo valor da constante Name.
WelcomeMsg := "Welcome {Name} to UEFN"
# Use set para modificar o valor de uma variável
set NameLength = Name.Length
# Print: Escreve um texto na tela e no log
Print(WelcomeMsg)
Print("{Name} has {NameLength} characters")
# if: Executa um bloco de código se o resultado da expressão for sucesso
if(StartTimer?):
TimerDevice.Start()
As linhas que começam com o caractere # são comentários ignorados pelo código Verse.
O @editable é um atributo da linguagem Verse que indica que a constante ou variável pode ser modificada diretamente no UEFN.
Salve o arquivo e compile o código Verse usando a opção Verse > Build Verse Code do menu do UEFN.
Para adicionar o nosso dispositivo Verse ao nível, acesse o Content Drawer e a pasta que tem o nome do projeto mais Content.Arraste o const_var_device e solte-o no nível. Arraste também para o nível um Timer Device que pode ser encontrado na pasta Fortnite > Devices.
Selecione o const_var_device no nível. Na aba Details você pode modificar os valores das constantes que foram marcadas com @editable. Marque o checkbox da constante StartTimer. Coloque o seu nome na constante Name. Clique no drop-down de TimerDevice para selecionar o Timer Device que adicionamos ao nível.
Clique no botão Launch Session localizado na barra de ferramentas do UEFN para carregar o nível no Fortnite.
Após iniciar a partida no Fortnite, pressione a tecla Tab e selecione a aba Log para visualizar o log com as mensagens escritas pelas funções Print. Verifique também que o Timer Device é iniciado pelo nosso código Verse se o valor da constante StartTimer for true.