Agora que você criou as entidades que se movem para frente e para trás entre os alvos, é hora de criar uma estrutura pré-fabricada que você possa usar para configurar rapidamente seu próprio nível.
Como criar a estrutura pré-fabricada
Para começar, você precisará definir o conjunto de entidades que compõem sua entidade móvel. Cada conjunto terá várias entidades. A primeira entidade representará a própria plataforma, enquanto outras entidades representarão os destinos para os quais a plataforma se moverá. Siga estas etapas para criar sua estrutura pré-fabricada de plataforma de redefinição:
Adicione à sua cena uma entidade chamada
AnimatingBlockSet. Para ver como adicionar entidades e componentes à sua cena, confira Como trabalhar com entidades e componentes.Adicione outra entidade chamada
AnimatingBlockà cena como um filho deAnimatingBlockSet. Defina a transformação desta entidade para a transformação do pai. Essa é a entidade que será animada.Adicione um
mesh_componentao seu AnimatingBlock e atribua o cubo a ele.Adicione um
animate_to_targets_componente umkeyframed_movement_componentaAnimatingBlock. Esse é o componente Verse definido anteriormente.Adicione três novas entidades à cena chamadas
StartingTarget,Target2eTarget3e defina-as como filhos deAnimatingBlockSet. Adicionemesh_componenta cada um deles e defina-o como esfera. Assim, você poderá visualizar para onde sua entidade está se movendo no mundo.Você pode reposicionar essas entidades para mover a plataforma para áreas diferentes e pode desabilitar
mesh_componentdepois de posicionar o bloco, para evitar que a esfera seja exibida durante a jogabilidade.Posicione
StartingTargetna mesma transformação queAnimatingBlock, eTarget2eTarget3em locais para onde você deseja que o bloco se mova. Tente dar aTarget2eTarget3escalas e rotações diferentes para que você possa ver como o bloco se altera enquanto anima para cada um deles.Selecione a entidade
AnimatingBlockno editor. No painel Detalhes, adicione três itens à matrizSegments. DefinaSegmentStartPositionpara cada entidade de destino na ordem em que você deseja que o bloco se desloque até ela. Você também pode alterarPauseSeconds,AnimationDurationeEasingFunctionpara personalizar o movimento do bloco.Por fim, clique com o botão direito em
AnimatingEntitySetno Organizador e selecione "Salvar como estrutura pré-fabricada". Chame esta estrutura pré-fabricada deanimating_entity_prefab.
Exemplo de estrutura pré-fabricada usando a configuração anterior. Como Target2 e Target3 têm escalas e rotações diferentes, AnimatingBlock será dimensionado e girará corretamente ao se deslocar até eles.
Como criar um nível de jogo de plataforma
E é isso! Agora que você terminou todo o trabalho de base, é hora de colocar a mão da massa! Você usará as estruturas pré-fabricadas que criou para criar rapidamente um nível de plataforma.
No início do seu nível, tente usar animating_entity_set_prefab para criar uma estrutura de ponte que constrói a si mesma. Você pode substituir mesh_component em cada entidade pelas suas próprias malhas personalizadas para adicionar um pouco de estilo. Use o modo de animação de uso único para garantir que os blocos permaneçam no lugar quando terminarem de se mover.
Os blocos são animados lentamente até sua posição para construir uma Bridge ponte que o jogador atravessará.
Agora, coloque alguns dos elementos animating_entity_set_prefab que você criou para criar uma série de plataformas pelas quais os jogadores devem deslocar com cuidado. Tente variar AnimationDuration, PauseSeconds e EasingFunction em cada segmento para tornar cada plataforma única e manter os jogadores alertas o tempo todo. Na configuração a seguir, o jogador deve atravessar três plataformas, cada uma com diferentes durações de animação e tempos de pausa.
Os saltos ficam muito mais intensos quando são sobre a lava.
Como as simulações das suas entidades começarão praticamente no mesmo momento, suas plataformas também começarão a se mover ao mesmo tempo. Não se esqueça disso enquanto estiver posicionando suas plataformas, principalmente se várias delas estiverem se movendo na mesma direção, pois alguns saltos poderão tornar-se inviáveis por causa disso, a menos que você varie AnimationDuration e o PauseSeconds deles.
E as plataformas que desparecem num loop? Usando disappearing_entity_prefab, crie uma seção na qual os jogadores têm que pular sobre plataformas que desaparecem e reaparecem em momentos diferentes. Varie Duration delas para criar situações complicadas para os jogadores.
Os jogadores precisam prestar muita atenção ao tempo de cada entidade para atravessar este segmento.
Por último, tente usar animating_entity_prefab como um obstáculo que os jogadores tenham que evitar. Na configuração a seguir, o jogador deve atravessar uma série de plataformas em um lago enquanto é perseguido por um bloco enorme. O bloco tem diferentes durações de animação e tempos de pausa para tornar a travessia do lago caótica, mas não impossível.
Não é fácil relaxar à beira do lago quando você está sendo perseguido por um cubo enorme.
Por si só
E é isso! Ao concluir este guia, você aprendeu a usar componentes Verse personalizados para criar seu próprio jogo de plataforma. Usando o que aprendeu, tente fazer o seguinte:
Você pode usar vários componentes Verse na mesma plataforma para criar cenários interessantes? Que tal uma plataforma que se move e desaparece ao mesmo tempo?
Pense em quais outros tipos de componentes você poderia usar para um jogo de plataforma. Que tal uma plataforma que usa um componente de iluminação para sinalizar quando é possível pisar nela, ou um componente de sistema de partículas que informa quando a plataforma pode causar dano a você?
Tente criar outros componentes Verse personalizados para criar novos tipos de obstáculos. Que tal uma entidade pela qual você só pode passar quando tiver a cor certa? Que tal uma entidade teleguiada que detecta onde um jogador está e o segue lentamente?
Código completo
Aqui está o código completo criado neste tutorial:
disappear_on_loop_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
# Loops between hiding and showing the entity by enabling and disabling
# its static mesh and collision components.
disappear_on_loop_component := class<final_super>(component):
animate_to_targets_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
using { /Verse.org/SpatialMath }
using { /Verse.org/SceneGraph }
using { /Verse.org/SceneGraph/KeyframedMovement }
using { /UnrealEngine.com }
# Editor Tool Tips