Olá pessoal, tudo certin?
Meu último post, sobre REST, ficou bastante “denso”. Por isso, resolvi pegar leve hoje. Hoje faremos alguma animação usando HTML5.
Dica: fica muito mais fácil acompanhar pegando o código-fonte;
A idéia é diversão …
O que já vimos?
Para você que está chegando agora, veja o que já foi abordado:
- HTML5 – Parte 9 – Começando a mexer com Canvas
- HTML5 – Parte 8 – Messaging
- HTML5 – Parte 7 – Suporte para offline
- HTML5 – Parte 6 – Armazenando dados com Web SQL Databases
- HTML5 – Parte 5 – Armazenando dados com Web Storage
- HTML5 – Parte 4 – Vídeo e Áudio
- HTML5 – Parte 3 – Formulários
- HTML5 – Parte 2 – Semântica para todos
- HTML5 – Parte 1 – história e elementos de estrutura
Pegando a idéia…
O conceito de animação disponível para Canvas, no HTML5, é muito simples (quase rudimentar). Se há uma área do canvas que se deseja “animar”, devemos fazer o desenho, limpar a área, desenhar novamente e assim vai..
Pintando uma imagem
Animação com HTML é na unha! Basicamente, sobreposição de imagens. Essas imagens podem ser construídas dinamicamente (com as técnicas que mostrei no post anterior) ou totalmente carregadas de uma fonte externa (o que vou fazer hoje).
Observe o código:
O que eu fiz?
- criei um objeto canvas;
- criei um método de inicialização que carrega dinâmicamente uma imagem;
- redimensiono o canvas para que tenha o tamanho da área útil no browser;
- com a imagem carregada, desenho-a no canvas.
O resultado, no meu computador ficou assim:
Bacana! Mas ainda sem animação….
Fazendo a bola girar
Para dar um pouco mais de graça… vamos fazer a bola girar. Observe:
O que eu fiz? Bem, vamos por partes…
- criei um canvas onde eu processaria “a rotação” da bola. Observe que, para fins de simplicidade na rotação, desloco o ponto de trabalho para o centro do canvas (init);
- criei um “timer” para execução do meu procedimento de desenho (init);
- em cada desenho, rotaciono o “canvas” da bolinha em 3 graus (drawBall);
- utilizo o canvas da bolinha como source para o drawImage no meu canvas principal (drawBall).
Bacana!
Movendo a bolinha pela tela
Vamos fazer a bola rolar pela nossa tela!
Retirei o código que apaga o desenho anterior. Logo, podemos ver, pelo rastro, o caminho que a bola:
Dando peso para a bola
Esse movimento seco da bolinha pela tela não ficou dos mais legais… Ela não está se deslocando no vácuo.. Vamos adicionar um efeito… Vamos aumentar gradativamente o peso da bola (dy)..
O “pulo do gato” está na linha 12
Um último ponto que me chateava bastante nesse exemplo era a rotação da bolinha. Ela fica girando sempre para o mesmo lado. O que fazer? Inverter o sentido da bola conforme a direção horizontal (em X). Observe:
Pronto e … bacana!
Por hoje, era isso!
sónia
03/10/2011
muito giro! parabéns
uma pergunta: imaginando que não usávamos a bola, como apagávamos o desenho anterior?