PlayLib - Galeria de Exemplos
Segunda, 10 Setembro 2012 22:48

Animação Simples

Avaliação:
(3 votos)

Descrição: Este exemplo demonstra como criar uma animação simples de uma bola na tela.

Autor: Edirlei Soares de Lima

Download: Exemplos02.zip

 

 

 

 

Código Fonte:

#include "Graphics.h"
#include <stdio.h>

Graphics graphics;
 
float px = 100;    //Posicao da bola no eixo X.
float py = 100;    //Posicao da bola no eixo y.
float speed = 150; //Velocidade da bola.
int dir = 1;       //Variavel para controle da direcao do movimento da bola.
bool pause = false;//Variavel para definir quando a animacao esta em pause.
 
//Funcao que controla a animacao do retangulo.
void Animate()
{
    if (!pause)
    {
        if (dir == 1)
        {
            //Calcula o deslocamento X e Y de forma independente da taxa de frames por segundo.
            px += speed * graphics.GetElapsedTime();
            py += speed * graphics.GetElapsedTime();
        }
        else if (dir == 2)
        {
            px += speed * graphics.GetElapsedTime();
            py -= speed * graphics.GetElapsedTime();
        }
        else if (dir == 3)
        {
            px -= speed * graphics.GetElapsedTime();
            py -= speed * graphics.GetElapsedTime();
        }
        else if (dir == 4)
        {
            px -= speed * graphics.GetElapsedTime();
            py += speed * graphics.GetElapsedTime();
        }
 
        //Controla a direcao do movimento da bola
        if (px+50 > graphics.GetScreenWidth())
        {
            if (dir == 1)
                dir = 4;
            else if (dir == 2)
                dir = 3;
        }
        else if (px < 50)
        {
            if (dir == 3)
                dir = 2;
            else if (dir == 4)
                dir = 1;
        }
        else if (py+50 > graphics.GetScreenHeight())
        {
            if (dir == 1)
                dir = 2;
            else if (dir == 4)
                dir = 3;
        }
        else if (py < 50)
        {
            if (dir == 3)
                dir = 4;
            else if (dir == 2)
                dir = 1;
        }
    }
}
 
void KeyboardInput(int key, int state, int x, int y)
{
    if (((key == 'p')||(key == 'P'))&&(state == KEY_STATE_DOWN))
    {
        pause = !pause;
    }
}
 
void MainLoop()
{  
    Animate();
    graphics.SetColor(35, 191, 27);
    graphics.FillCircle2D(px, py, 50, 32); //Desenha a bola na tela.
}
 
int main(void)
{
    graphics.CreateMainWindow(800, 600, "Exemplo 02 - Animação Simples");
    graphics.SetBackgroundColor(0, 0, 0);
    graphics.SetKeyboardInput(KeyboardInput);
    graphics.SetMainLoop(MainLoop);
    graphics.StartMainLoop();
    return 0;
}
Visualizado 3359 vezes Última modificação em Quinta, 17 Janeiro 2013 22:31