Monedas - Juego de Plataformas 2D (3)


Vamos a añadir unas monedas en nuestro pequeño mundo. Les voy a enseñar unas cosas sobre el nodo "AnimationPlayer" para que hagan sus animaciones.
 > El proyecto que puedes usar como guía se encuentra aquí.

Creando los nodos


El nodo de la moneda es un Area2D. Dentro de la moneda vamos a poner un "AnimationPlayer" que podemos usar para hacer la animación de movimiento.

Haciendo la animación


Primero vamos a hacer clic en nuestro nodo de AnimationPlayer para poder abrir la pestaña de "Animación" que tenemos debajo de la escena.

Para editar una nueva animación tenemos que hacer clic en la hoja que tiene el signo verde:

Ahora sólo tenemos que elegir un nombre y empezar a editar.


Cuando tenemos creada nuestra línea de tiempo, vamos a hacer clic en el segundo "0" y buscamos el nodo que queremos animar. En éste caso vamos a dirigirnos al Sprite.
 


Como podemos observar se ha creado una llave al lado de las propiedades de un nodo. Vamos a abrir la sección de "Animation" y buscamos el "frame", tenemos que saber bien cuántos frames tiene una animación. Esta moneda sólo tienes 8 frames horizontales y es más fácil animarla. Ponemos el frame en "0" y hacemos clic en la llave que está al lado de Frame.
 

Creamos una nueva pista y ya tenemos un puntito. Cada punto va a representar los cambios que se realicen durante la animación.

Ahora tenemos que poner la línea del editor en el micro-segundo 0.1 y repetimos los pasos de arriba: hacemos clic en el Sprite y ponemos el frame en 1 para hacer clic en la llave y crear otra pista... y así sucesivamente hasta que tenemos todos los frames de la animación.









Como pueden ver: el último punto llega hasta el 0.7. En el campo que dice "Duración" vamos a poner el tiempo total que dura la animación, ya sabemos que es 0.7 y lo ponemos.

Además tenemos que decirle a la animación que queremos que siempre se repita, así que hacemos clic en el botón de bucle (es el azul que da vueltas):

Sólo falta que hagamos clic en éste icono para guardar la animación en algún lugar de nuestra carpeta, yo la guarde como "mov_moneda":

Ahora que tenemos nuestra animación sólo tenemos que ir al script de nuestra moneda.

Detectando al jugador y moviendo la moneda


En nuestra función de inicio del script para la moneda, vamos a seleccionar nuestro nodo de AnimationPlayer (yo lo llame: "anim") y usamos el ".play()" para activar la animación, le tenemos que poner el nombre de nuestra animación dentro de los paréntesis.

Para detectar al jugador hacemos lo siguiente:

Con el "get_overlapping_bodies()" vamos a obtener una lista de todos los cuerpos físicos que han entrando en el área. Si es mayor a 0 es porque algo ha entrado y en ese caso vamos a recorrer todos los objetos de la lista para saber si UNO en especifico se encuentra en el grupo de jugadores. En tal caso, sumamos puntos y eliminamos nuestra moneda con "self.queue_free()"

Recuerden que el bucle for va a ejecutar el código que tiene en su interior por cada valor que tenga el get_overlapping... creo que les será más fácil ver un vídeo: https://www.youtube.com/watch?v=I-U7UcmgOdg en el minuto 2:22 se empieza a hablar sobre el bucle for, espero que FuryCode no se moleste conmigo xd.

Con esto hemos terminado el artículo de hoy. Espero que la información les sea útil.

Desde el Nautilus, me despido

No hay comentarios

Con la tecnología de Blogger.