Ahora que has creado entidades que se mueven de un objetivo a otro, es el momento de crear un prefabricado que puedas utilizar para configurar rápidamente tu propio nivel.
Cómo crear el prefabricado
Para empezar, tendrás que definir el conjunto de entidades que conforman la entidad móvil. Cada conjunto tendrá varias entidades. La primera entidad representará a la propia plataforma, mientras que otras entidades representarán los destinos a los que se desplazará la plataforma. Sigue estos pasos para crear tu prefabricado de plataforma de ida y vuelta:
Añade una entidad a tu escena con el nombre
AnimatingBlockSet. Para saber cómo añadir entidades y componentes a tu escena, consulta Cómo trabajar con entidades y componentes.Añade otra entidad con el nombre
AnimatingBlocka tu escena como hijo deAnimatingBlockSet. Establece la transformación de esta entidad a la transformación del padre. Esta es la entidad que se animará.Añade un
mesh_componenta tu AnimatingBlock y asígnale el cubo.Añade
animate_to_targets_componentykeyframed_movement_componentalAnimatingBlock. Se trata del componente de Verse que definiste anteriormente.Añade tres nuevas entidades a la escena denominadas
StartingTarget,Target2yTarget3, y defínelas como hijos deAnimatingBlockSet. Añade el componentemesh_componenta cada uno de ellos y ajústalo en esfera. Esto te permitirá visualizar hacia dónde se mueve tu entidad en el mundo.Puedes recolocar estas entidades para mover la plataforma a distintas zonas, y puedes desactivar su componente
mesh_componentcuando tengas la plataforma colocada para evitar que la esfera aparezca durante el juego.Coloca
StartingTargeten la misma transformación queAnimatingBlock, yTarget2yTarget3en los lugares donde quieras que se mueva el bloque. Prueba a dar aTarget2yTarget3escalas y rotaciones diferentes para que puedas ver cómo cambia el bloque al animar a cada uno de ellos.Selecciona la entidad
AnimatingBlocken el editor. En el panel Detalles, añade tres elementos a la matrizSegments. EstableceSegmentStartPositionen cada entidad de destino en el orden en que quieres que el bloque se desplace hacia ellas. También puedes cambiarPauseSeconds,AnimationDurationyEasingFunctionpara personalizar el movimiento del bloque.Por último, haz clic con el botón derecho del ratón en tu
AnimatingEntitySeten el esquematizador y selecciona Guardar como prefabricado. Dale el nombreanimating_entity_prefaba este prefabricado.
Prefabricado de ejemplo con la configuración anterior. Como Target2 y Target3 tienen escalas y rotaciones diferentes, el AnimatingBlock se escalará y rotará adecuadamente mientras se desplaza hacia ellos.
Cómo construir un nivel de plataformas
¡Y ya está! Ahora que has terminado todo el trabajo preliminar, ¡es hora de empezar a construir! ¡Utilizarás los prefabricados que has creado para construir rápidamente un nivel de plataformas!
Al principio de tu nivel, intenta utilizar animating_entity_set_prefab para crear una estructura de puente que se construya a sí misma. Puedes anular mesh_component en cada entidad con tus propias mallas personalizadas para añadir algo de estilo. Utiliza el modo de animación de una toma para asegurarte de que los bloques permanezcan en su sitio cuando terminen de moverse.
Los bloques se animan lentamente para construir un puente que el jugador puede cruzar.
A continuación, coloca algunos de los prefabricados animating_entity_set_prefab que has construido para crear una serie de plataformas que los jugadores deben recorrer con cuidado. Prueba a variar los parámetros AnimationDuration, PauseSeconds e EasingFunction en cada segmento para que cada plataforma sea única y mantener a los jugadores en vilo. En la siguiente configuración, el jugador tiene que cruzar tres plataformas, cada una con diferentes duraciones de animación y tiempos de pausa.
Los saltos se vuelven mucho más intensos cuando se producen sobre lava.
Como todas tus entidades empezarán a simular más o menos al mismo tiempo, tus plataformas también empezarán a moverse todas al mismo tiempo. Tenlo en cuenta al colocar tus plataformas, sobre todo si tienes varias plataformas moviéndose en la misma dirección, ya que esto puede imposibilitar algunos saltos a menos que varíes sus valores AnimationDuration y PauseSeconds.
¿Qué pasa con las plataformas que desaparecen en un bucle? Con la propiedad disappearing_entity_prefab, crea una sección en la que los jugadores tengan que saltar plataformas que desaparecen y reaparecen en momentos distintos. Varía la Duration de estas para crear situaciones difíciles para tus jugadores.
Los jugadores deben prestar mucha atención al tiempo de cada entidad para cruzar esta sección.
Por último, intenta utilizar animating_entity_prefab como obstáculo que los jugadores tengan que evitar. En la siguiente configuración, el jugador tiene que cruzar una serie de plataformas a través de un estanque mientras es perseguido por un bloque gigante. El bloque tiene diferentes duraciones de animación y tiempos de pausa para que cruzar el estanque sea frenético, pero no imposible.
No es fácil relajarse junto al estanque cuando te persigue un cubo gigante.
Por tu cuenta
¡Y ya está! Al terminar esta guía habrás aprendido a utilizar componentes personalizados de Verse para crear tu propio juego de plataformas. Con lo que has aprendido, intenta hacer lo siguiente:
¿Puedes utilizar varios componentes de Verse en la misma plataforma para crear situaciones interesantes? ¿Y una plataforma que se mueva y desaparezca al mismo tiempo?
Piensa qué otros tipos de componentes podrías utilizar para un juego de plataformas. ¿Y una plataforma que utilice el componente de luz para indicar cuándo puedes pisar o un componente del sistema de partículas que te diga si la plataforma puede dañarte?
Prueba a crear otros componentes personalizados de Verse para crear nuevos tipos de obstáculos. ¿Qué tal una entidad que solo puedas atravesar cuando sea del color correcto? ¿Y una entidad que detecte dónde se encuentra un jugador y lo siga lentamente?
Código completo
A continuación encontrarás el código completo creado en este 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