Reto: Cambiar animaciones de un Sprite por Tap Flutter con Flame 21

- Andrés Cruz

In english
Reto: Cambiar animaciones de un Sprite por Tap Flutter con Flame 21

Como un pequeño reto, debes de implementar la siguiente lógica en el componente de los sprite sheet animados, y tienes que implementar una lógica muy sencilla para variar la animación cada vez que se da un tap sobre la pantalla; para ello, puedes utilizar una propiedad numérica la cual indicará la animación a ejecutarse:

  • animationIndex con el valor de cero, se muestra la animación de la muerte. 
  • animationIndex con el valor de uno, se muestra la animación de inactiva.
  • animationIndex con el valor de dos, se muestra la animación de salto.
  • animationIndex con el valor de tres, se muestra la animación de caminando.
  • animationIndex con el valor de cuatro, se muestra la animación de corriendo.

Resolución reto

Como resolución, podemos utilizar un switch en la cual, realicemos el cambio de la animación según el valor de animationIndex que incrementaremos cada vez que ocurra el "tap" sobre la pantalla:

lib\components\player_sprite_sheet_component.dart

*** 
  int animationIndex = 0;
*** 
  @override
  bool onTapDown(TapDownInfo info) {
    super.onTapDown(info);
    print(info);

    animationIndex++;

    if (animationIndex > 4) animationIndex = 0;

    switch (animationIndex) {
      case 1:
        animation = dinoIdleAnimation;
        break;
      case 2:
        animation = dinoJumpAnimation;
        break;
      case 3:
        animation = dinoWalkAnimation;
        break;
      case 4:
        animation = dinoRunAnimation;
        break;
      case 0:
      default:
        animation = dinoDeadAnimation;
        break;
    }

    return true;
  }

Como puedes ver, podemos variar fácilmente entre una animación a otra mediante un valor numérico que corresponde a un indice de la animación que se quiere animar.

Este snippet forma parte del proyecto completo:

https://github.com/libredesarrollo/flame-curso-libro-dinojump03

En el cual, vemos como crear la animación paso a paso; lo importante es notar lo sencillo que resulta hacer este tipo de integración, cada tecla del teclado esta asociada a una acción distinta como caminar, saltar o correr que a su vez está asociada a una animación distinta que es fácilmente cambiada asignando a la propiedad animation un valor distinto.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.