Cambiar la animación de un sprite

Enviado por tech4life el

Si estamos desarrollando un juego en 2D y tenemos una escena con un sprite de tipo AnimatedSprite2D y tenemos diferentes animaciones, por ejemplo una para que nuestro sprite corra, otra para la posición de reposo, otra para disparar u otra para morirse, y queremos que se active por código alguna de estas animaciones en concreto lo que tenemos que hacer es lo siguiente.

Primero de todo, en nuestro script, vinculado a la escena en la que tenemos nuestro sprite, vamos a declarar una variable  para recuperar nuestro sprite node

@onready var sprite = $AnimatedSprite2D

Al estar en nuestra propia escena, podemos recuperar la referencia solo con $ y el nombre del nodo. Con la anotación @onready nos aseguramos que estará disponible el objeto para referenciarse.

Luego en nuestro código solo tendremos que hacer cuando queramos activar una animación en concreto :

sprite.play("collected")

Es decir de la referencia que tenemos en  nuestra variable, ejecutar la funcion play pasandole el nombre de la animación en concreto. En nuestro ejemplo tenemos una animación que se llama "collected".

 

Nivel