480 likes | 582 Views
Introdução à Programação usando Processing Programação Gráfica 2D Animações Exercício Animações. Bruno C. de Paula. 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;
E N D
Introdução à Programaçãousando ProcessingProgramação Gráfica 2DAnimaçõesExercício Animações Bruno C. de Paula 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
Executa 1 vez Executa X vezes 7
draw (frame 1) Limpa a tela 10
draw (frame 1) Desenha elipse 11
px é igual a 0 0 12
draw (frame 1) Desenha elipse 0 13
draw (frame 1) 0 Incrementa o px 14
px vai de 0 até 1 1 15
draw (frame 1) 0 Incrementa o px 1 16
draw (frame 1) 0 1 draw (frame 2) Limpa tela 17
draw (frame 1) 0 1 draw (frame 2) Desenha elipse 18
px é igual a 1 1 19
draw (frame 1) 0 1 draw (frame 2) Desenha elipse 1 20
draw (frame 1) 0 1 draw (frame 2) 1 Incremento 21
px vai de 1 até 2 2 22
draw (frame 1) 0 1 draw (frame 2) 1 Incremento 2 23
draw (frame 1) 0 1 draw (frame 2) 1 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ínuoExemplo do frameCount • void setup() { • println(frameCount); • frameRate(1); • } • void draw() { • println(frameCount); • rect(50, 50, frameCount, frameCount); • }
Modo Contínuo frame “0” • Executa a função setup.
Modo Contínuo frame 1 • Executa a primeira vez a função draw; • É como se estivesse chamando rect(50, 50, 1, 1);
Modo Contínuo frame 2 • Executa a segunda vez a função draw; • É como se estivesse chamando rect(50, 50, 2, 2);
Implementação de uma animação simples • Definir o bloco setup; • (OPCIONAL) Configurar o tamanho da tela no bloco setup; • (OPCIONAL) Configurar o frame rate no bloco setup; • Definir o bloco draw; • Escrever o código do objeto a ser animado dentro do draw; • Definir uma variável para cada propriedade do objeto a ser animada; • Substituir o parâmetro do objeto a ser animado pela variável; • No fim do draw, atualizar o valor da variável associada ao objeto.
2) (OPCIONAL) Configurar o tamanho da tela no bloco setup 35
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