Bruno C. de Paula
Introdução à Programação
usando Processing
Programação Gráfica 2D
Animações
Exercício
Animações
2º Semestre 2009 > PUCPR > Design Digital
Revisão
Uma animação possui:
Início;
Passo;
Fim;
Ver tópico 1 – Modo contínuo no
Processing;
Estamos relembrando as funções
setup, draw e frameRate e as
variáveis frameRate e frameCount;
2
Revisão
Modo contínuo
Permite o controle do fluxo de
execução;
Baseado em duas funções:
setup;
draw;
3
Revisão
Função setup
Chamada apenas uma vez no início da
execução;
Configurações gerais;
4
Revisão
Função draw
Chamada imediatamente após a
execução do setup;
Repete-se continuamente;
Código para desenho;
Atualização de variáveis;
5
Exemplo de execução passo a
passo!
6
Executa 1 vez
Executa
X vezes
7
Cria variável px
8
Configura a tela
9
draw (frame 1)
Limpa a tela
10
draw (frame 1)
Desenha
elipse
11
px é igual a 0
12
draw (frame 1)
Desenha
elipse
13
draw (frame 1)
Incrementa o
px
14
px vai de 0 até
1
15
draw (frame 1)
Incrementa o
px
16
draw (frame 1)
draw (frame 2)
Limpa tela
17
draw (frame 1)
draw (frame 2)
Desenha
elipse
18
px é igual a 1
19
draw (frame 1)
draw (frame 2)
Desenha
elipse
20
draw (frame 1)
draw (frame 2)
Incremento
21
px vai de 1 até
2
22
draw (frame 1)
draw (frame 2)
Incremento
23
draw (frame 1)
draw (frame 2)
draw (frame 3)
24
Revisão
Função frameRate
Define a taxa de atualização;
FPS (frames por segundo);
Quanto maior, mais rápida é a
atualização;
Quanto menor, mais lenta é a
atualização;
Padrão = 60 frames por segundo;
25
Revisão
Variável frameRate
Valor
aproximado
da taxa de
atualização na
execução do
programa;
26
Revisão
Variável frameRate
Valor
aproximado
da taxa de
atualização na
execução do
programa;
27
Revisão
Variável frameCount
Número de frames desde o início
da execução do programa;
Cada chamada ao draw incrementa
esse valor;
28
Modo contínuo
Exemplo do frameCount
void setup() {
println(frameCount);
frameRate(1);
}
void draw() {
println(frameCount);
rect(50, 50, frameCount,
frameCount);
}
05/11/2015
29
Modo Contínuo
frame “0”
Executa a
função setup.
05/11/2015
30
Modo
Contínuo
frame 1
Executa a
primeira vez
a função
draw;
É como se
estivesse
chamando
rect(50, 50,
1, 1);
05/11/2015
31
Modo
Contínuo
frame 2
Executa a
segunda vez
a função
draw;
É como se
estivesse
chamando
rect(50, 50,
2, 2);
05/11/2015
32
Implementação de uma
animação simples
1) Definir o bloco setup;
2) (OPCIONAL) Configurar o tamanho da tela no bloco
setup;
3) (OPCIONAL) Configurar o frame rate no bloco setup;
4) Definir o bloco draw;
5) Escrever o código do objeto a ser animado dentro do
draw;
6) Definir uma variável para cada propriedade do
objeto a ser animada;
7) Substituir o parâmetro do objeto a ser animado pela
variável;
8) No fim do draw, atualizar o valor da variável
associada ao objeto.
05/11/2015
33
1) Definir o bloco setup
34
2) (OPCIONAL) Configurar o
tamanho da tela no bloco setup
35
3) (OPCIONAL) Configurar o
frame rate no bloco setup
36
4) Definir o bloco draw
37
5) Escrever o código do objeto a
ser animado no draw
38
6) Definir uma variável para cada
propriedade do objeto a ser
animada
39
7) Substituir o parâmetro do
objeto a ser animado pela
variável
40
8) No fim do draw, atualizar o
valor da variável associada ao
objeto
41
Dicas práticas
Para implementar periodicidade, use o
operador %;
A função map pode ser utilizada para
alterar a escala de uma variável (ver
exercício F04, letra j);
Seno (sin) e cosseno (cos) também
são funções periódicas...;
A função random pode ser usada para
dar aspecto aleatório à sua animação;
42
Dicas práticas
Para parar uma animação você pode
usar a estrutura de seleção (mais
detalhes na próxima aula);
// Só faz o incremento
// enquanto o px for menor que 300
if(px<300) {
px = px + 1;
}
43
Exercício Letra A
Anime a movimentação da
boca do PACMAN;
44
Exercício Letra B
Anime a movimentação do
planeta;
45
Exercício Letra C
Anime a alteração das
cores;
Anime a movimentação
das elipses;
46
Exercício Letra D
Anime a movimentação
da segunda linha;
47
Exercício 2
Modifique seu robô;
Desta vez, você deve animá-lo;
Seja criativo, não se limite a
animação do movimento!
48
Download

do Exercício - Bruno Campagnolo de Paula