Videojuegos en HTML5

Animaciones con sprites Más videos

Descripción del tema

Las animaciones son parte esencial de un juego, en este tema veremos como cargar un sprite para animar a nuestro personaje principal, también mostraremos los pájaros que estarán aventando piedras y dulces.

Para poder realizar animaciones necesitamos tener un sprite con imágenes en secuencia, por ejemplo para los pajaros que aparecerán volando usaremos la siguiente imagen.

Sprite

El sprite de las aves

Como se puede observar el ave contiene cuatro imágenes secuenciales en diferente posición. Cada frame será desplegado individualmente y se podrá observar una animación.

Otro aspecto a considerar es que la imagen está en diferentes direcciones, derecha e izquierda, si quisieramos poner alguna otra animación deberíamos ponerla sobre este mismo archivo.

Una vez que tenemos el arte listo vamos agregar las siguientes lineas de código al estado que creamos en el tutorial anterior.

var GameState = {
    preload : function(){  //Step 1
        var me = this;

        //...

        me.load.spritesheet('crow', 'resources/images/crow.png',97 ,120); //Step 2
        me.load.spritesheet('man', 'resources/images/man.png',69 ,174);
    },

    //...
}
  1. En el paso uno vamos a cargar las imágenes necesarias para realizar las animaciones, usamos el método preload que viene definido en el estado que estamos usando.
  2. En el paso dos usamos el Loader para cargar las dos imágenes, es necesario definir un identificador para poder usar la imagen más adelante, también es necesario definir el tamaño de cada frame, con esto Phaser podrá ir cambiando entre frames automáticamente.

Una vez que hemos cargado las imágenes al juego, podremos usarlas dentro del método create.

var GameState = {
    preload : function(){
        //...
    },

    create  : function(){
        var me = this;

        //...

        me.crow = me.game.add.sprite(150, 100, 'crow');       //Step 1
        me.crow.animations.add('right', [0,1,2,3], 8, true);  //Step 2
        me.crow.animations.add('left', [4,5,6,7], 8, true);
        me.crow.animations.play('right');                     //Step 3

        me.man = me.game.add.sprite(200, me.game.world.height - 250, 'man'); //Step 1
        me.man.animations.add('right', [0,1,2,3,4,5,6,7], 10, true);  //Step 2
        me.man.animations.add('left', [8,9,10,11,12,13,14,15], 10, true);
        me.man.animations.play('left');   //Step 3
    },

    //...
}
  1. En el paso uno mostramos el sprite en la coordenada x=150 y=100 para el caso del pájaro, en el caso del personaje principal x=200 y=alto total del juego menos 250.
  2. En el paso dos agregamos dos animaciones, right y left, es necesario definir un identificador para reproducirlas más adelante. También es necesario definir un arreglo con los frames que pertenecen a esta animación, para el pájaro son los primeros 4 y para el personaje son los primero 8. Por último definimos cada cuantos frames por segundo se ejecutará esta animación así como si se hará una sola vez o se repetirá.
  3. En el último paso reproducimos la animación, en cualquier momento podemos cambiar entre animaciones, más adelante cambiaremos estas animaciones basados en la entrada del usuario.

Si en este momento refrescamos nuestro navegador con los cambios agregados veremos nuestras animaciones ejecutándose fluidamente.

Animations

Animaciones en Phaser

Como se puede observar agregar animaciones a nuestro juego ha sido bastante sencillo, en este momento todavía no podemos hacer nada interesante con nuestros personajes pero vamos avanzando en este proyecto.

En el siguiente tutorial veremos como mover a nuestro personajes sobre el eje x o y. Si te ha gustado este tutorial compártelo en tus redes sociales, eso me ayudará mucho a seguir publicando más tutoriales como este!

Te gustaría recibir más tutoriales como este en tu correo?

Este tutorial pertenece al curso Videojuegos en HTML5, te recomiendo revises el resto de los tutoriales ya que están en secuencia de menor a mayor complejidad.

Si deseas recibir más tutoriales como este en tu correo te recomiendo registrarte al curso, si ya eres miembro solo identifícate y registrate al curso, si no eres miembro te puedes registrar gratuitamente!

Si no gustas registrarte en este momento no es necesario! Aún así puedes recibir los nuevos tutoriales en tu correo! Jamás te enviaremos Spam y puedes cancelar tu suscripción en cualquier momento.

¿Olvidaste tu contraseña?

6Comentarios

  • Avatar-5 Cesar Augusto 24/12/2014

    Disculpa el personaje en la animación 'man' esta caminando hacia atras, ¿la secuencia de animación debe ser inversa?

    • Avatar-2 Crysfel Villa 24/12/2014

      Buena observación! Para solucionarlo se pueden hacer dos cosas, o cambiar el orden de los frames en photoshop o cambiar el order en el código, yo preferiría hacerlo en el código por ser más fácil y rápido. Saludos

    • Avatar-4 Adrian Said Dawn R. 25/12/2014

      Excelentes tutoriales, ando esperando con ansias el resto del curso.

      • Avatar-11 Xavi Delgado 26/02/2015

        Hola! Un curso genial! Añadiras mas clases a este curso? Saludos!

      • Avatar-11 Julio Yacot 08/03/2015

        Muchas gracias por el curso Crysfel!!! En el caso de los Sprites, que me recomiendas para enteder mucho más su funcionamiento? por ejemplo: Tengo este complejo sprite: http://www.geocities.ws/kaidousspritelibrary/Megaman_MasterSheet.gif y me gustaría porder implementarlo en mi proyecto, sin embargo veo que la anchura en algunos de ellos no es igual al resto... cual sería la solución? Un abrazo desde Venezuela!

        Instructor del curso

        Crysfel3

        Autor: Crysfel Villa

        Amante de los videojuegos y programador, actualmente desarrollando juegos sencillos para dispositivos móviles solo por diversión.

        Descarga video Descarga Código Fuente Ver Demostración

        Regístrate a este curso

        Este tutorial pertenece al curso Videojuegos en HTML5, revisa todos los tutoriales que tenemos en este mismo curso ya que están en secuencia y van de lo más sencillo a lo más complicado.

        Ya que este curso no está finalizado al registrarte podrás recibir en tu correo los nuevos tutoriales de este curso!

        Tendrás acceso a descargar los videos, códigos y material adicional.

        Podrás resolver los ejercicios incluidos en el curso así como los Quizzes.

        Llevarás un registro de tu avance.