rendered paste body#include <allegro.h>
volatile long speed_counter = 0;
void increment_speed_counter() // A function to increment the speed counter
{
speed_counter++;
}
END_OF_FUNCTION(increment_speed_counter);
int main()
{
allegro_init();
install_keyboard();
install_timer();
LOCK_VARIABLE(speed_counter); //Used to set the timer - which regulates the game's
LOCK_FUNCTION(increment_speed_counter);//speed.
install_int_ex(increment_speed_counter, BPS_TO_TIMER(60));
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED , 800 , 600 , 800 , 1200);
BITMAP *tank = NULL;
BITMAP *buffer1, *buffer2, *tmp;
buffer1 = create_video_bitmap(800,600);
buffer2 = create_video_bitmap(800,600);
tank = load_bitmap("tank2.bmp",NULL);
int tank_X = 0;
int tank_Y = 0;
while(!key[KEY_ESC])//If the user hits escape, quit the program
{
while(speed_counter > 0)
{
if(key[KEY_RIGHT])
{
tank_X++;
}
else if(key[KEY_LEFT])
{
tank_X--;
}
else if(key[KEY_UP])
{
tank_Y--;
}
else if(key[KEY_DOWN])
{
tank_Y++;
}
speed_counter--;
} // speed counter loop
clear_bitmap(buffer1);
draw_sprite(buffer1, tank, tank_X, tank_Y);
show_video_bitmap(buffer1);
tmp = buffer1;
buffer1 = buffer2;
buffer2 = tmp;
rest(1);
}
destroy_bitmap(tank);
destroy_bitmap(tmp);
return 0;
}
END_OF_MAIN()