Curso Intensivo de Canvas: Explore a Criatividade
Sobre a Aula

Quadros (frames) e sua importância

Vamos explorar a importância dos quadros (frames) na animação do HTML Canvas, um conceito crucial para garantir movimentos suaves e uma experiência visual agradável.

1. Quadros e a Ilusão de Movimento:

Os quadros, ou frames, são imagens individuais que compõem uma animação.

Em uma animação no Canvas, cada quadro exibe uma cena diferente, criando a ilusão de movimento quando reproduzidos em sequência.

2. Taxa de Quadros por Segundo (FPS):

A taxa de quadros por segundo, conhecida como FPS, é a medida que indica quantos quadros são exibidos em um segundo. Uma animação suave geralmente tem uma taxa de quadros mais alta.

A taxa padrão é de 60 FPS, proporcionando uma experiência visual fluida.

3. A Função requestAnimationFrame:

A função requestAnimationFrame é crucial para controlar a frequência de atualização dos quadros.

Ela otimiza o desempenho da animação, ajustando automaticamente a taxa de quadros com base na capacidade do navegador.

function animar() {
  // Código de animação aqui

  requestAnimationFrame(animar);
}

4. Evitando Perda de Quadros:

Se a taxa de quadros for muito baixa, a animação parecerá entrecortada.

Manter uma taxa constante e ideal permite uma transição suave entre os quadros, evitando perdas perceptíveis.

function animar() {
  contexto.clearRect(0, 0, canvas.width, canvas.height);

  // Código de animação aqui

  requestAnimationFrame(animar);
}

5. Ajustando a Velocidade da Animação:

Ao ajustar a velocidade da animação, você pode controlar quantos quadros são desenhados por segundo.

Isso é especialmente útil para criar efeitos específicos ou para garantir que a animação não seja rápida demais.

function animar() {
  contexto.clearRect(0, 0, canvas.width, canvas.height);

  // Código de animação aqui

  setTimeout(animar, 16); // 16 milissegundos para 60 FPS
}

Vamos ver com fica em um exemplo completo:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Exemplo de Animação no Canvas</title>
  <style>
    canvas {
      border: 1px solid #000;
      display: block;
      margin: 20px auto;
    }
  </style>
</head>
<body>
  <canvas id="meuCanvas" width="400" height="200"></canvas>

  <script>
    var canvas = document.getElementById("meuCanvas");
    var contexto = canvas.getContext("2d");
    var x = 50; // posição inicial do quadrado

    function animar() {
      contexto.clearRect(0, 0, canvas.width, canvas.height);

      // Desenha um quadrado na posição atual
      contexto.fillRect(x, 50, 30, 30);

      // Atualiza a posição para o próximo quadro
      x += 2;

      // Limita a animação a uma certa largura
      if (x > canvas.width) {
        x = 0;
      }

      // Solicita o próximo quadro de animação
      requestAnimationFrame(animar);
    }

    // Inicia a animação
    animar();
  </script>
</body>
</html>

Visualização do código

Exemplo de Animação no Canvas

Entender a importância dos quadros na animação é fundamental para criar experiências visuais atraentes e suaves no HTML Canvas.

Nos próximos tópicos, abordaremos a animação de objetos e transições suaves, aprofundando ainda mais seus conhecimentos.

Continue praticando e experimentando diferentes técnicas de animação para aprimorar suas habilidades no Canvas.

Entrar na conversa
Rolar para cima