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