All pastes #263713 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-12-01 19:20 UTC
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()