#include <allegro.h>
volatile long speed = 0;
void increment_speed()
{
speed++;
}
END_OF_FUNCTION( increment_speed );
LOCK_VARIABLE( speed );
LOCK_FUNCTION( increment_speed );
int main()
{
allegro_init();
install_keyboard();
set_color_depth( 16 );
set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
install_timer();
install_int_ex( increment_speed, BPS_TO_TIMER( 150 ) );
BITMAP * bufor = NULL;
BITMAP * ludek = NULL;
BITMAP * ludek0 = NULL;
BITMAP * ludek1 = NULL;
BITMAP * ludek2 = NULL;
BITMAP * ludek3 = NULL;
BITMAP * ludek4 = NULL;
BITMAP * ludek5 = NULL;
bufor = create_bitmap( 640, 480 );
if( !bufor )
{
set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
allegro_message( "Nie mogê utworzyæ bufora !" );
allegro_exit();
return 0;
}
ludek = load_bmp( "ludek.bmp", default_palette );
ludek0 = load_bmp( "ludek0.bmp", default_palette );
ludek1 = load_bmp( "ludek1.bmp", default_palette );
ludek2 = load_bmp( "ludek2.bmp", default_palette );
ludek3 = load_bmp( "ludek3.bmp", default_palette );
ludek4 = load_bmp( "ludek4.bmp", default_palette );
ludek5 = load_bmp( "ludek5.bmp", default_palette );
int ludek_x = 100, ludek_y = 100;
int frame = 0;
while( !key[ KEY_ESC ] )
{
while( speed > 0 )
{
if( key[ KEY_LEFT ] ) ludek_x--;
if( key[ KEY_RIGHT ] ) ludek_x++;
if( key[ KEY_UP ] ) ludek_y--;
if( key[ KEY_DOWN ] ) ludek_y++;
speed--;
frame++;
if( frame > 80 ) frame = 0;
}
clear_to_color( bufor, makecol( 150, 150, 150 ) );
if( key[ KEY_LEFT ] )
{
if( frame < 75 ) { draw_sprite( bufor, ludek, ludek_x, ludek_y ); }
else if( frame >= 75 && frame < 150 ) { draw_sprite( bufor, ludek4, ludek_x, ludek_y ); }
}
if( key[ KEY_RIGHT ] )
{
if( frame < 75 ) { draw_sprite( bufor, ludek, ludek_x, ludek_y ); }
else if( frame >= 75 && frame < 150 ) { draw_sprite( bufor, ludek4, ludek_x, ludek_y ); }
}
if( key[ KEY_UP ] )
{
if( frame < 75 ) { draw_sprite( bufor, ludek, ludek_x, ludek_y ); }
else if( frame >= 75 && frame < 150 ) { draw_sprite( bufor, ludek4, ludek_x, ludek_y ); }
}
if( key[ KEY_DOWN ] )
{
if( frame < 75 ) { draw_sprite( bufor, ludek, ludek_x, ludek_y ); }
else if( frame >= 75 && frame < 150 ) { draw_sprite( bufor, ludek4, ludek_x, ludek_y ); }
}
masked_blit( ludek, bufor, 0, 0, ludek_x, ludek_y, ludek->w, ludek->h );
blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
}
remove_int( increment_speed );
destroy_bitmap( ludek0 );
destroy_bitmap( ludek1 );
destroy_bitmap( ludek2 );
destroy_bitmap( ludek3 );
destroy_bitmap( bufor );
allegro_exit();
return 0;
}
END_OF_MAIN();
Nie ma tu moich prób bo je usunąłem.