Plataformas que aparecem e desaparecem periodicamente são essenciais para modos de jogo de plataforma, como pistas de obstáculos. Elas exigem que os jogadores sincronizem seus saltos para alcançar a próxima plataforma e, se errarem, cairão e terão que recomeçar.
Seguindo este tutorial, você aprenderá a usar Verse no Unreal Editor para Fortnite (UEFN) para criar uma plataforma que aparece e desaparece em looping. O script completo está incluído no final deste tutorial como referência.

Funcionalidades usadas da linguagem Verse
loop: a plataforma alterna entre ficar visível e invisível até o jogo terminar. Este exemplo usa a expressãoloopem Verse para executar continuamente esse comportamento.
APIs Verse usadas
-
Sleep(): Com a funçãoSleep(), você pode escolher por quanto tempo a plataforma ficará em seus estados invisível e visível. -
Propriedades editáveis: duas propriedades de dispositivos criados com Verse são expostas ao UEFN, para que você possa personalizá-las no editor: uma referência de
creative_proppara a plataforma eToggleDelaypara a chamada da funçãoSleep().
Configurando o nível
Este tutorial usa o Modelo inicial em Verse como ponto de partida. Para começar, inicialize um novo projeto a partir do exemplo de funcionalidade Dispositivo Verse.
Este exemplo usa os seguintes adereços e dispositivos:
-
1 Plataforma de Surgimento de Jogador: esse dispositivo define onde o jogador surge no início do jogo.
-
3 Adereços Criativos: eles têm vários comportamentos que você pode chamar com Verse, como
Hide()eShow()para alternar a visibilidade e a colisão da plataforma. Este tutorial usa a Plataforma de Flutuação A como plataforma de interação com o jogador, mas fique à vontade para alterá-la para se adequar às necessidades da sua experiência.
Siga estas etapas para configurar o nível:
-
Arraste uma Plataforma de Flutuação A para a cena. Coloque-a acima do piso para que o jogador caia se não saltar da plataforma que desaparece a tempo. Dê o nome de LoopingDisappearingPlatform à plataforma no Organizador.
-
Copie a plataforma duas vezes e coloque-as em lados opostos da primeira plataforma para que o jogador precise sincronizar seu salto. O jogador mal deve ter tempo suficiente para chegar ao outro lado.
-
Mova a Plataforma de Surgimento de Jogador para uma das plataformas. É aqui que o jogador surgirá quando o jogo começar. A configuração do seu nível deve ser semelhante a esta:
Como criar o dispositivo Verse
Este exemplo usa um dispositivo criado com Verse para definir o comportamento de alternância da visibilidade das plataformas. Siga estas etapas para criar o dispositivo Verse e colocá-lo no nível.
-
Crie um novo dispositivo Verse chamado looping_disappearing_platform usando o Explorador do Verse. Consulte as etapas em Criar o próprio dispositivo usando Verse.
-
Arraste o dispositivo looping_disappearing_platform do Navegador de Conteúdo para o nível. Consulte os passos em Criar o próprio dispositivo usando Verse.
Editando as propriedades do dispositivo no UEFN
Esta seção mostra como expor duas propriedades de dispositivo ao UEFN para que você possa personalizá-las no editor:
-
Uma referência de
creative_proppara o Adereço Criativo que você colocou no nível. -
Uma constante
floatpara armazenar o tempo em que a plataforma fica invisível/visível, chamadaToggleDelay.
Siga estas etapas para expor essas propriedades ao editor a partir do dispositivo looping_disappearing_platform criado na seção anterior.
-
Abra o Explorador do Verse e clique duas vezes em looping_disappearing_platform.verse para abrir o script no Visual Studio Code.
-
Para a definição da classe
looping_disappearing_platform, adicione os seguintes campos:-
Um
floateditável chamadoToggleDelay. Ele representa o tempo entre a alternar entre visível e invisível. Inicialize esse valor como2.0, ou dois segundos.# A quantidade de tempo a aguardar antes de alternar a visibilidade da plataforma. @editable ToggleDelay : float = 2.0 -
Um
creative_propeditável chamadoDisappearingPlatform. Essa é a plataforma no nível que desaparecerá e aparecerá periodicamente. Como o seu código ainda não tem uma referência a esse objeto no nível, você o instanciará com um arquétipocreative_prop{}. Você atribuirá essa referência a sua plataforma flutuante mais tarde.~~~(verse) # A referência à plataforma no nível. @editable DisappearingPlatform:creative_prop = creative_prop{} ~~~
-
-
Os campos de sua classe
looping_disappearing_platformdevem ter a seguinte a aparência:using { /Fortnite.com/Devices } using { /Verse.org/Simulation } using { /UnrealEngine.com/Temporary/Diagnostics } # Consulte https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse para saber como criar um dispositivo Verse. # Um dispositivo do Modo Criativo criado com Verse que pode ser colocado em um nível. looping_disappearing_platform := class(creative_device): # A quantidade de tempo a aguardar antes de alternar a visibilidade da plataforma. @editable ToggleDelay : float = 2.0 # A referência à plataforma no nível. @editable DisappearingPlatform:creative_prop = creative_prop{}É útil usar o atributo
@editablepara expor valores comoToggleDelayao editor a partir de seus scripts. Assim, você pode personalizar seus valores no UEFN sem ter que recompilar o código Verse a todo momento, podendo iterar rapidamente e encontrar os valores adequados para a sua experiência de jogo. -
Salve o script no Visual Studio Code e compile o código para atualizar o dispositivo looping_disappearing_platform no nível.
-
No painel Organizador no UEFN, selecione o dispositivo looping_disappearing_platform para abrir seu painel Detalhes.
-
No painel Detalhes, em LoopingDisappearingPlatform:
-
Defina DisappearingPlatform para LoopingDisappearingPlatform (o adereço criativo que você adicionou ao nível) clicando no seletor de objetos e selecionando o adereço criativo na janela de visualização, ou pesquisando LoopingDisappearingPlatform na barra de pesquisa.

-
Defina ToggleDelay para a quantidade de segundos que você deseja que a plataforma fique visível/invisível. O padrão deste valore é 2.0 pois este é o valor que você definiu anteriormente.
-
Ocultando e mostrando a plataforma
Agora que você configurou o nível e os dispositivos, pode adicionar lógica para exibir e ocultar a plataforma. Siga estas etapas para adicionar esse comportamento ao dispositivo looping_disappearing_platform:
-
A classe
creative_proptem dois métodos para alternar sua visibilidade:Hide()eShow(). Voltando ao Visual Studio Code, emOnBegin(), chameHide()e depoisShow()na suaDisappearingPlatform.# É executado quando o dispositivo é iniciado em um jogo em execução OnBegin<override>()<suspends>:void= # Deixe a plataforma invisível. DisappearingPlatform.Hide() # Deixe a plataforma visível. DisappearingPlatform.Show()Se você executar esse código, não verá a plataforma desaparecer e reaparecer porque as chamadas de
Hide()eShow()ocorrem imediatamente após uma da outra. -
Para fazer com que a plataforma permaneça em um estado visível ou invisível por mais tempo, você pode adicionar um atraso entre as chamadas
Hide()eShow()usandoSleep(). A funçãoSleep()suspende a execução de uma rotina, e você especifica a quantidade de tempo (em segundos) para suspender a execução passando um argumentofloatpara a função. ChameSleep()antes de cada chamada deHide()eShow(), passandoToggleDelayque você definiu anteriormente.~~~(verse) # É executado quando o dispositivo é iniciado em um jogo em execução OnBegin
() :void= # Espere a quantidade de segundos em ToggleDelay. Sleep(ToggleDelay)
# Deixe a plataforma invisível. DisappearingPlatform.Hide()
# Espere a quantidade de segundos em ToggleDelay. Sleep(ToggleDelay)
# Deixe a plataforma visível. DisappearingPlatform.Show() ~~~
Se você executar este código, a plataforma ficará invisível por dois segundos (a quantidade definida por
ToggleDelay) antes de ficar visível pelo resto do jogo.A função
Sleep()só pode ser chamada em um contexto assíncrono. Como métodoOnBegin()já é um contexto assíncrono, pois tem um especificadorsuspends, você não precisa fazer mais nada Para saber mais sobre o especificadorsuspends, consulte: Especificadores e atributos. -
Para fazer com que a plataforma alterne entre visível e invisível enquanto o jogo estiver em execução, você pode usar a expressão
loop. Usarlooprepetidamente executa o código dentro da expressãoloop, a menos que o código seja interrompido combreak. Neste exemplo, você alternará a visibilidade da plataforma pelo tempo que o tempo fica em execução, então não há necessidade de adicionar uma expressãobreakpara sair deloop. Adicione uma expressãoloopno início deOnBegin()e indente o resto do código dentro do loop. Seu métodoOnBegin()deve ter a seguinte aparência:~~~(verse) # É executado quando o dispositivo é iniciado em um jogo em execução OnBegin
() :void= loop: # Espere a quantidade de segundos em ToggleDelay. Sleep(ToggleDelay) # Deixe a plataforma invisível. DisappearingPlatform.Hide()
# Espere a quantidade de segundos em ToggleDelay. Sleep(ToggleDelay)
# Deixe a plataforma visível. DisappearingPlatform.Show() ~~~
-
Salve o script e clique em Verse e, depois, em Compilar código Verse para compilar o código.
-
Clique em Iniciar sessão na barra de ferramentas do UEFN para testar o nível.
Quando você testar o nível, sua plataforma aparecerá e desaparecerá a cada dois segundos enquanto o jogo estiver em execução.

O script completo
O código a seguir é o script completo para fazer uma plataforma desaparecer e reaparecer em um loop.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# Consulte https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse para saber como criar um dispositivo Verse.
# Um dispositivo do Modo Criativo criado com Verse que pode ser colocado em um nível.
looping_disappearing_platform := class(creative_device):
# A quantidade de tempo a aguardar antes de alternar a visibilidade da plataforma.
@editable
ToggleDelay : float = 2.0
# A referência à plataforma no nível.
@editable
DisappearingPlatform:creative_prop = creative_prop{}
# É executado quando o dispositivo é iniciado em um jogo em execução
OnBegin<override>()<suspends>:void=
loop:
# Espere a quantidade de segundos em ToggleDelay.
Sleep(ToggleDelay)
# Deixe a plataforma invisível.
DisappearingPlatform.Hide()
# Espere a quantidade de segundos em ToggleDelay.
Sleep(ToggleDelay)
# Deixe a plataforma visível.
DisappearingPlatform.Show()
Por conta própria
Ao concluir este tutorial, você terá aprendido a criar um dispositivo usando Verse que alterna a visibilidade de uma plataforma enquanto o jogo é executado.
Usando o que você aprendeu, tente o seguinte:
-
Duplique a configuração com o dispositivo looping_disappearing_platform e o adereço e experimente diferentes tempos de
ToggleDelaypara criar uma série mais longa de plataformas. -
Aplique os mesmos conceitos para chamar funções periodicamente em outros objetos, como o Propulsor de Adereços.