Animação 2D

8
Animação 2D

description

Animação 2D. // Variáveis que guardam a translação que será aplicada // sobre a casinha GLfloat Tx ; GLfloat Ty; // Variáveis que guardam os valores mínimos de x e y da // casinha GLfloat minX , maxX ; GLfloat minY , maxY ; - PowerPoint PPT Presentation

Transcript of Animação 2D

Page 1: Animação  2D

Animação 2D

Page 2: Animação  2D

// Variáveis que guardam a translação que será aplicada // sobre a casinhaGLfloat Tx;GLfloat Ty;

// Variáveis que guardam os valores mínimos de x e y da // casinhaGLfloat minX, maxX;GLfloat minY, maxY;

// Variáveis que guardam o tamanho do incremento nas // direções x e y (número de pixels para se mover a // cada intervalo de tempo)GLfloat xStep;GLfloat yStep;

// Variáveis que guardam a largura e altura da janelaGLfloat windowXmin, windowXmax;GLfloat windowYmin, windowYmax;

Page 3: Animação  2D

// Função callback de redesenho da janela de visualizaçãovoid Desenha(void){

// Muda para o sistema de coordenadas do modeloglMatrixMode(GL_MODELVIEW);// Inicializa a matriz de transformação correnteglLoadIdentity();

// Limpa a janela de visualização com a cor // de fundo definida previamenteglClear(GL_COLOR_BUFFER_BIT);

// Aplica uma translação sobre a casinhaglTranslatef(Tx, Ty, 0.0f);

... // desenha o que vc quiser

...

// Executa os comandos OpenGL glutSwapBuffers();}

Page 4: Animação  2D

Funções e Variáveis que Devem ser colocadas

// Função callback chamada quando o tamanho da janela é alterado void AlteraTamanhoJanela(GLsizei w, GLsizei h){ ...}

// Função callback chamada para gerenciar eventos de teclasvoid Teclado (unsigned char key, int x, int y){

if (key == 27)exit(0);

}

Page 5: Animação  2D

Funções e Variáveis que Devem ser colocadas

// Função callback chamada pela GLUT a cada intervalo de tempovoid Anima(int value){

// Muda a direção quando chega na borda esquerda ou direitaif( (Tx+maxX) > windowXmax || (Tx+minX) < windowXmin )

xStep = -xStep;

// Muda a direção quando chega na borda superior ou inferiorif( (Ty+maxY) > windowYmax || (Ty+minY) < windowYmin )

yStep = -yStep;

// Move a casinhaTx += xStep;Ty += yStep;

// Redesenha a casinha em outra posiçãoglutPostRedisplay();glutTimerFunc(150,Anima, 1);

}

Page 6: Animação  2D

// Função responsável por inicializar parâmetros e variáveisvoid Inicializa (void){

// Define a cor de fundo da janela de visualização como branca

glClearColor(1.0f, 1.0f, 1.0f, 1.0f);

// Inicialização das variáveis globaisxStep = yStep = 1.0f;Tx = Ty = 0.0f;minX = -15.0f;maxX = 15.0f;minY = -15.0f;maxY = 17.0f;windowXmin = windowYmin = -40.0f;windowXmax = windowYmax = 40.0f;

}

Page 7: Animação  2D

// Programa Principal int main(void){

// Define do modo de operação da GLUTglutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);

//Registra as callbacks necessárias// Registra a função callback que será chamada a cada intervalo de tempoglutTimerFunc(150, Anima, 1);

// Chama a função responsável por fazer as inicializações I// Inicia o processamento e aguarda interações do usuárioglutMainLoop();

return 0;}

Page 8: Animação  2D

TAREFA

1) Fazer uma animação 2D semelhante ao demo AnimaCasa

2) Fazer uma animação 3D semelhante ao demo Anima3D