Icono del sitio Recursos educativos GRATIS

Creación de Videojuegos. Godot Engine. Animación al recoger vidas

Tema 20. Godot Engine. Animación al recoger vidas

Vamos a generar un efecto visual cada vez que recogemos una vida.Para esto, iremos al Nodo Vidas0.

Nos situaremos en el Nodo Sprite del Nodo Vidas0 y trabajaremos con las propiedades Canva para crear una animación:

Propiedad Canvas del Nodo Sprite. Godot
Paleta de Colores. Godot

Para ello, primero vamos al Nodo AnimationPlayer y creamos una nueva animación: le ponemos de nombre: Delete.

Creamos la Animación Delete. Godot

Ahora vamos otra vez  a Sprite y hacemos Click en la LlaveModulate 

Ahora avanzamos pista en la animación, hacemos Click en el área de color blanco en Modulate,  bajamos la Opacidad A y le damos a la LLave

Click en el área de color blanco en Modulate. Godot

Agregamos self_Modulate a la animación. Godot

Nuestra Animación quedará así:

Animación Delete. Godot

Ahora agregaremos una Pista de llamada a Métodos. Esto es muy útil porque le podemos indicar al Animator que ejecute un método cuando termine de realizar una animación:

Hacamos Click en el botón +Agregar Pista y seleccionamos la opción en verde: Pista de Llamada a Métodos:

Pista de Llamada a Métodos. Godot

Seleccionamos el Nodo Vidas0 y Aceptar

Se agrega Funciones. Godot

Nos aparece El Nodo Vidas con Funciones: Hacemos Click debajo del área del editor (en las décimas de segundo)con el botón derecho y nos aparece la opción Insertar Clave

Insertamos Clave. Godot

Buscamos el método queque_free() y lo seleccionamos.

Agregamos el método queue_free a la animación. Godot

Y arrastramos la función al final de la animación:

Se inserta la función queue_free() al final de la animación. Godot

Una vez hecho esto, ahora quitaremos la eliminación del Nodo Vida0 que habíamos implementado anteriormente ya que ahora hacemos lo mismo cuando la animación termina.

OJO: Y tenemos que añadir la Reproducción de la función Delete

func _on_Vidas_body_entered(body):
DataManager.vidas_player +=1
$AnimationPlayer.play(“Delete”)
print(DataManager.vidas_player)

Nota: si probamos este ejemplo no vamos a visualizar la transición de la opacidad ya que en este ejemplo solo hemos empleado 20 décimas de segundo y la visualización es muy rápida, aunque sí podemos comprobar que el Nodo Vidas desaparece después de la animación.


ÍNDICE


Salir de la versión móvil