Creando una animación en HTML5: Moviendo al príncipe (I de II)

Windows Técnico

Sindicación

Proximos HOLs

Loading...

Una vez creado el primer fotograma de la animación llega la hora de animar al príncipe, con el objetivo de llevar a cabo la animación que se mostro en el video inicial. Tal y como se puede observar en el video en la primera escena se producen dos movimientos distintos (teniendo en cuenta al hoja de sprites que se está utilizando).

El primero de ellos es el movimiento a través del cual el príncipe “arranca” de parado, para posteriormente proceder a dar un salto o correr. A este movimiento se denominará “arrancarDerecha”, junto con su equivalente “arrancarIzquierda”, tal y como se puede ver en la siguiente imagen:

image

Imagen 1: Movimiento "arrancarDerecha"

Como se puede observar el movimiento se compone de 6 frames, indicándose las posiciones y tamaños tal y como se ha mostrado en anteriores posts.

El siguiente movimiento para esta escena es el de saltar. En este movimiento se presenta el inconveniente de que los frames no ocupan el mismo ancho. Se puede optar por modificar la hoja de sprites, o como en el caso que aquí se muestra, se utiliza un array para definir el ancho de cada frame.

image

Imagen 2: Movimiento "saltarDerecha"

Una vez definidos los dos movimientos de esta escena, se debe modificar la función newsprite, para crear las funciones necesarias para realizar los movimientos.

En primer lugar se añade el atributo tipoMovimiento a la variable sprite, y luego se modifica la función drawImage para dibujar el sprite teniendo en cuenta si el movimiento se ha definido con ancho fijo o a través de un array. Para ello eliminar el código marcado en rojo y colocar el marcado en verde, tal y como se muestra en la siguiente imagen:

image

Imagen 3: Modificación de la función "drawImage"

En esta misma función, al final incluir el código “Sprite.moverSprite();”, que se utiliza para mover el sprite según el movimiento especificado. La función moverSprite, quedaría como sigue:

image

Imagen 4: Función "moverSprite"

Nótese que la función es semejante a la descargada en el motor original, salvo que en esta se tiene en cuenta el valor de la variable tipoMovimiento ya que el príncipe no solo anda, sino que realiza otros muchos movimientos. Para cambiar de movimiento en la línea del tiempo de la animación se crea la función cambiarMovimiento:

image

Imagen 5: Función "cambiarMovimiento"

Por último en la línea de tiempo introducimos el código necesario para ir desplazando al príncipe y moverlo a lo largo de la escena uno:

image

Imagen 6: Línea del tiempo

Puedes visualizar y descargar el código de esta primera parte de la animación del príncipe. A partir de aquí el siguiente paso es generar el resto de movimientos, incorporándolos a la función drawImage como se ha visto y utilizarlos en la línea del tiempo.

En el próximo post se mostrarán el resto de movimientos y se verá como cambiar de escena e introducir la probeta como sprite estático.

 

===========================================================

Creando una animación en HTML5: Material necesario

Creando una animación en HTML5: Definiendo la animación

Creando una animación en HTML5: La estructura del motor

Creando una animación en HTML5: Primer fotograma (I de II)

Creando una animación en HTML5: Primer fotograma (II de II)

Creando una animación en HTML5: Moviendo al príncipe (I de II)

Creando una animación en HTML5: Moviendo al príncipe (II de II)

===========================================================


Enviado ene 03 2011, 02:06 por Anonymous

Comentarios

Windows Técnico escrito La cuenta atrás de Internet Explorer 6
en 03-08-2011 13:56

Que el tiempo pasa rápido es una frase que todos hemos utilizado alguna vez, y si digo que en el mundo

Windows Técnico escrito Internet Explorer 9: Las pruebas de concepto en HTML5 pueden resultar adictivas
en 03-21-2011 18:52

HTML5 es hoy por hoy el lenguaje de etiquetas más avanzado. Internet Explorer 9 es compatible con el

Añadir un comentario

(requerido)  
(opcional)
(requerido)  
Recordarme
If you can't read this number refresh your screen
Enter the numbers above: