Desarrolla un entorno de juego inmersivo para tus juegos de Godot con animaciones cautivadoras.

En el desarrollo de juegos, las animaciones juegan un papel crucial en la creación de una experiencia atractiva e inmersiva para los jugadores. Agregar animaciones 2D a tu juego de Godot puede dar vida a tus personajes y entornos, haciéndolos más atractivos visualmente e interactivos.

Afortunadamente, Godot proporciona potentes herramientas y funciones para crear y controlar fácilmente animaciones 2D.

Configuración del juego de Godot

Para comenzar, configure una escena de juego 2D básica en el motor de juego de Godot. Cree una nueva escena y agregue un CinemáticaCuerpo2D nodo como el personaje del jugador. Dentro de CinemáticaCuerpo2D, Agrega un ColisiónForma2D con forma de rectángulo que representa los límites de colisión del jugador.

El código utilizado en este artículo está disponible en este repositorio GitHub y es gratis para su uso bajo la licencia MIT.

Además, agregue un Sprite animado nodo para manejar las animaciones del jugador. Además, asegúrese de mapear las siguientes acciones de entrada en su

instagram viewer
Mapa de entrada:

Luego, escribe el código GDScript para controlar el movimiento del jugador. Adjunte el siguiente script a la CinemáticaCuerpo2D nodo:

 extiende KinematicBody2Dconst VELOCIDAD = 200func _física_proceso (delta): var velocidad = Vector2.ZERO si Entrada.es_acción_presionada ("mover_izquierda"): velocidad.x -= VELOCIDAD si Entrada.es_acción_presionada("mover_derecha"): velocidad.x += VELOCIDAD si Entrada.es_acción_presionada("mover_arriba"): velocidad.y -= VELOCIDAD si Entrada.es_acción_presionada("mover_abajo"): velocidad.y += VELOCIDAD velocidad = move_and_slide (velocidad)

Este script configura una velocidad constante para el jugador y le permite moverse hacia la izquierda, derecha, arriba y abajo usando las teclas de flecha o WASD.

Agregar SpriteSheet en AnimatedSprite

Ahora, configure el Sprite animado para usar una hoja de sprites para animaciones. Selecciona el Sprite animado nodo y navegue hasta el marcos en la pestaña de propiedades del nodo. Aquí, haga clic en el Nuevos SpriteFrames botón.

Cambiar a la SpriteFrames pestaña ubicada en la parte inferior del editor de Godot. En el SpriteFrames pestaña, haga clic en el Nueva animación botón. Crear animaciones como caminar y inactivo agregando cuadros apropiados a cada animación.

Además, tienes la opción de crear otras animaciones, como disparar, saltar y escalar. para un juego de plataformas. Después de eso, haga clic en el Agregar marcos desde SpriteSheet para extraer automáticamente fotogramas individuales de la hoja de sprites.

Controlando animaciones usando GDScript

Ahora que tiene sus animaciones configuradas, puede controlarlas mediante programación usando GDScript.

Reproducir y detener la animación

Controlar la reproducción de animaciones es esencial para brindar experiencias dinámicas e interactivas en su juego. El Sprite animado El nodo en Godot ofrece métodos para reproducir y detener animaciones según la lógica de tu juego.

Extender el CinemáticaCuerpo2D nodo y manejar el control de animación dentro del _física_proceso función. Puedes usar el play_animation y detener_animación entradas para activar las acciones de animación correspondientes.

 extiende KinematicBody2Dfunc _physics_process (delta): # Reproducir la animación si Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Detiene la animación y restablece al primer cuadro si Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0

Al asignar las acciones de entrada adecuadas, puede proporcionar a los jugadores control sobre la reproducción de la animación en su juego.

Por ejemplo, puede enlazar el play_animation acción a la pulsación de un botón o un evento específico en su juego, lo que permite al jugador activar una secuencia de animación en el momento deseado. Además, puede encontrar música libre de derechos de autor para reproducir mientras se ejecuta la animación.

Del mismo modo, puede activar el detener_animación acciones para detener completamente la animación.

Al incorporar estos mecanismos de control de animación, puede agregar profundidad e interactividad a las animaciones de su juego, creando experiencias más atractivas e inmersivas para sus jugadores.

Rotación de la animación

Rotar la animación puede agregar interés visual y variedad a tu juego. Puede rotar programáticamente el Sprite animado nodo para cambiar la orientación de la animación. Puede aplicar la rotación en grados usando el girar() método.

 extiende KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Gira la animación 45 grados en el sentido de las agujas del reloj $AnimatedSprite.rotate (deg2rad (45))

Cuando presiona los botones asociados con el rotar_animación (puede definir esta acción en su mapa de entrada), el girar() se llama al método Sprite animado nodo. Gira el nodo 45 grados en el sentido de las agujas del reloj usando grados2rad() para convertir los grados a radianes.

Tenga en cuenta que aplicará la rotación a todo el Sprite animado nodo, incluidos todos los fotogramas de la animación. Por lo tanto, si desea rotar solo fotogramas específicos, es posible que deba dividirlos en secciones separadas. Sprite animado nodos o utilizar otras técnicas, como voltear fotogramas individuales.

Voltear la animación

Voltear la animación horizontal o verticalmente puede ser útil para reflejar cambios en la dirección del personaje. En Godot, el Sprite animado node proporciona propiedades para controlar el volteo.

Para voltear la animación horizontalmente, configure el flip_h propiedad de la Sprite animado a verdadero. Esto reflejará la animación a lo largo del eje horizontal. Del mismo modo, establecer la flip_v propiedad a verdadero reflejará la animación a lo largo del eje vertical.

 extiende KinematicBody2Dfunc _physics_process (delta): si Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # o $AnimatedSprite.flip_v = true para volteo vertical

Si el jugador presiona el flip_animation acción de entrada y luego configure el flip_h propiedad de la Sprite animado a verdadero. Esto volteará la animación horizontalmente.

Utilizando señales en AnimatedSprite

Además de controlar animaciones programáticamente, Godot proporciona un poderoso sistema de eventos llamado señales. Las señales le permiten responder a eventos o cambios específicos que ocurren durante la ejecución de su juego.

En el caso de Sprite animado, hay dos señales importantes que puede utilizar: animación_terminada() y frame_changed().

1. animation_finished() Señal

El animación_terminada() la señal se emite cuando la animación llega al último cuadro, ya sea durante una sola reproducción o cuando se repite. Esta señal es útil cuando desea realizar acciones o desencadenar eventos cuando se completa una animación.

 extiende KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Realizar acciones o desencadenar eventos print("Animación terminado!") # Código adicional aquí...

Conecta el animación_terminada() señal de la Sprite animado hacia _en_animación_terminada() en el mismo script usando el método conectar() función.

Cuando la animación termina de reproducirse, puede ejecutar una lógica personalizada o activar otras funcionalidades usando el _en_animación_terminada() método.

2. frame_changed() Señal

El frame_changed() la señal se emite cada vez que cambia el cuadro actual de la animación. Esto puede ocurrir cuando se está reproduciendo la animación o cuando modifica el marco mediante programación. Puede utilizar esta señal para detectar cambios de cuadro y reaccionar en consecuencia.

 extiende KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Realizar acciones basadas en el cuadro actual var cuadroActual = $AnimatedSprite.frame print("Cuadro actual: ", CuadroActual) # Código adicional aquí...

Conecta el frame_changed() señal de la Sprite animado hacia _en_fotograma_cambiado() método en el mismo script. Cuando el cuadro cambia, puede acceder al cuadro actual usando el _en_fotograma_cambiado() método y realizar acciones o lógica basada en el valor del marco.

Al utilizar señales, puede responder a eventos de animación, como finalización o cambios de cuadro, e incorporar comportamientos dinámicos o desencadenar acciones específicas en su juego.

Haz que los juegos de Godot sean más atractivos usando animaciones

Agregar animaciones 2D a tus juegos de Godot puede mejorar enormemente la experiencia general del jugador. Las animaciones dan vida a los personajes, haciendo que sus movimientos y acciones sean visualmente más atractivos. Al incorporar animaciones para diversas acciones, como caminar, correr, atacar y saltar, puede crear un entorno de juego dinámico e inmersivo.

Además, también puede usar animaciones para proporcionar comentarios visuales al jugador. Esta retroalimentación ayuda a que el juego sea más atractivo y receptivo, mejorando la sensación de control y participación del jugador.