23. Animación frame a frame

Ya somos capaces de montar animaciones simples a partir de estilos CSS que van cambiando a lo largo de una línea de tiempo. Pero, ¿como puedo escapar de las limitaciones de los estilos? ¿Cual es la técnica para crear cualquier tipo de movimiento? Como siempre se han realizado las animaciones: cuadro a cuadro o frame a frame.

Por ejemplo, el siguiente personaje caminando no es posible realizarlo con formas simples de CSS. En cambio tus ojos están contemplando una animación real en HTML.

Para lograrlo debes partir con una imagen donde se ha dibujado cada uno de los fotogramas.

Sprite sheet personaje caminando

En cuando lo has construido, es rápido aplicarlo. Se añade como una imagen de fondo que se irá trasladando.

@keyframes caminado {

  from {
    background-position: 0 0;
  }

  to {
    background-position: -1000px 0;
  }

}

.personaje {
  width: 125px;
  height: 168px;
  background-image: url(sprite-sheet.png);
  animation: caminado 1s infinite;
}
<div class="personaje"></div>

Ya solo nos queda indicar que la transición no sea fluida, se represente con saltos o steps. Uno por cada frame, en el ejemplo serían 8.

@keyframes caminado {

  from {
    background-position: 0 0;
  }

  to {
    background-position: -1000px 0;
  }

}

.personaje {
  width: 125px;
  height: 168px;
  background-image: url(sprite-sheet.png);
  animation: caminado 1s infinite steps(8);
}

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Desafíos de programación atemporales y multiparadigmáticos

Desafíos de programación atemporales y multiparadigmáticos

Te encuentras ante un librillo de actividades, divididas en 2 niveles de dificultad. Te enfrentarás a los casos más comunes que te puedes encontrar en pruebas técnicas o aprender conceptos elementales de programación.

Buy the book

Will you buy me a coffee?

Visitors in real time

You are alone: 🐱