Code:
#include <allegro.h>
int counter;
int x = 300, y = 425, left = 0, right = 0, go = 0, fire = 0;
int bx = 100, cx = 150, dx = 200, ex = 250, fx = 300, gx = 350, hx = 400, ix = 450, jx = 500;
void update_counter()
{
counter++;
}
END_OF_FUNCTION(update_counter);
int main()
{
allegro_init();
install_keyboard();
LOCK_VARIABLE(counter);
LOCK_FUNCTION(update_counter);
install_int_ex( update_counter, BPS_TO_TIMER(60));
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, 640, 480, 0, 0);
BITMAP *ship = load_bitmap( "Ship.bmp", NULL );
BITMAP *baddy = load_bitmap( "Baddy.bmp", NULL );
BITMAP *baddy2 = load_bitmap( "Baddy.bmp", NULL );
BITMAP *baddy3 = load_bitmap( "Baddy.bmp", NULL );
BITMAP *baddy4 = load_bitmap( "Baddy.bmp", NULL );
BITMAP *baddy5 = load_bitmap( "Baddy.bmp", NULL );
BITMAP *baddy6 = load_bitmap( "Baddy.bmp", NULL );
BITMAP *baddy7 = load_bitmap( "Baddy.bmp", NULL );
BITMAP *baddy8 = load_bitmap( "Baddy.bmp", NULL );
BITMAP *baddy9 = load_bitmap( "Baddy.bmp", NULL );
BITMAP *laser = load_bitmap( "laser.bmp", NULL );
BITMAP *buffer = create_bitmap( 640, 480 );
while ( !key[KEY_ESC] )
{
while (counter > 0) {
if (left) x-=10;
if (right) x+=10;
counter--;
}
if ( x < 600 && key[KEY_RIGHT])
right = 1;
else
right = 0;
if ( x > 0 && key[KEY_LEFT])
left = 1;
else
left = 0;
clear_bitmap( buffer);
draw_sprite ( buffer, ship, x, 425 );
draw_sprite ( buffer, baddy, bx, 20 );
draw_sprite ( buffer, baddy2, cx, 20 );
draw_sprite ( buffer, baddy3, dx, 20 );
draw_sprite ( buffer, baddy4, ex, 20 );
draw_sprite ( buffer, baddy5, fx, 20 );
draw_sprite ( buffer, baddy6, gx, 20 );
draw_sprite ( buffer, baddy7, hx, 20 );
draw_sprite ( buffer, baddy8, ix, 20 );
draw_sprite ( buffer, baddy9, jx, 20 );
vsync();
blit( buffer, screen, 0, 0, 0, 0, 640, 480);
if ( bx > 10 && go == 0){
bx--;
cx--;
dx--;
ex--;
fx--;
gx--;
hx--;
ix--;
jx--;
}
else if ( jx < 600 ){
go = 1;
bx++;
cx++;
dx++;
ex++;
fx++;
gx++;
hx++;
ix++;
jx++;
}
else if ( jx = 600 ){
go = 0;
}
}
destroy_bitmap(buffer);
destroy_bitmap(ship);
destroy_bitmap(baddy);
destroy_bitmap(baddy2);
destroy_bitmap(baddy3);
destroy_bitmap(baddy4);
destroy_bitmap(baddy5);
destroy_bitmap(baddy6);
destroy_bitmap(baddy7);
destroy_bitmap(baddy8);
destroy_bitmap(baddy9);
destroy_bitmap(laser);
allegro_exit();
return 0;
}
END_OF_MAIN();
i know there is a better way to do it than loading seperate bitmaps.... it was just the only way I knew how