terça-feira, 17 de maio de 2011

Aula 3 - Exercicio animação

Fazendo o código para uma animação simples:

-Criando os os arrays para guardar as imagens da animação:

BITMAP* mario[5];
BITMAP* mario_pulo[3];

-Variavel para controlar os frames:
int frame, frame_pulo;

-Carregando as imagens para as animações:
mario[0] = load_bitmap("mario_4.BMP",NULL);
mario[1] = load_bitmap("mario_3.BMP",NULL);
mario[2] = load_bitmap("mario_4.BMP",NULL);
mario[3] = load_bitmap("mario_2.BMP",NULL);
mario[4] = load_bitmap("mario_1.BMP",NULL);
mario_pulo[0] = load_bitmap("pulo_1.BMP",NULL);
mario_pulo[1] = load_bitmap("pulo_2.BMP",NULL);
mario_pulo[2] = load_bitmap("pulo_3.BMP",NULL);

-Animações e movimentação do personagem de acordo com as ações do teclado:
if(direita){
posx+=5;
frame++;
}
if(esquerda){
posx-=5;
frame++;
}
if(key[KEY_SPACE] && (chao || qtdPulo < 2)){
chao = false;
impulso = 50;
qtdPulo++;
rest(100);
}

if(!chao){
posy -= impulso;
impulso -= 1;
if(posy > 430 || posy + gravidade > 430){
posy = 430;
impulso = 50;
chao = true;
qtdPulo = 0;
frame = 0;
frame_pulo = 0;
}
}

if(!chao){
posy += gravidade;
frame = 4;
if(impulso-gravidade > 0){
frame_pulo = 0;
}else if(impulso-gravidade <= 10 && impulso-gravidade >= -10){
frame_pulo = 1;
}else{
frame_pulo = 2;
}
//cout << "Impulso: " << impulso << " - " << "frame pulo: " << frame_pulo << "\n";
}

if(chao && frame == 4){
frame = 0;
}

-E por ultimo a renderização:
if(chao){

if(!flip){
draw_sprite(backbuffer,mario[frame],posx,posy);
}else{
draw_sprite_h_flip(backbuffer,mario[frame],posx,posy);
}
}else{
if(!flip){
draw_sprite(backbuffer,mario_pulo[frame_pulo],posx,posy);
}else{
draw_sprite_h_flip(backbuffer,mario_pulo[frame_pulo],posx,posy);
}
}

draw_sprite(screen,backbuffer,0,0);

Nenhum comentário:

Postar um comentário