#include #include #include #include volatile long speed_counter = 0; volatile bool close_button_pressed = false; int playerx = 0; int playery = 0; int tilex = 32; int tiley = 32; void increment_speed_counter() { speed_counter++; } END_OF_FUNCTION(increment_speed_counter); void close_button_handler() { close_button_pressed = false; } END_OF_FUNCTION(close_button_handler); allegro_init(); install_keyboard(); install_timer(); LOCK_VARIABLE(speed_counter); LOCK_FUNCTION(increment_speed_counter); LOCK_FUNCTION(close_button_handler); install_int_ex(increment_speed_counter, BPS_TO_TIMER(5)); set_color_depth(16); set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640,480,0,0); set_window_title("MMORPG Client"); set_close_button_callback(close_button_handler); BITMAP *playerpic; playerpic = load_bitmap("data/images/players/player.bmp", NULL); BITMAP *buffer; buffer = create_bitmap(640,480); int main(int argc, char *argv[]) { while(!key[KEY_ESC] || !close_button_pressed) { while(speed_counter > 0) { if(key[KEY_RIGHT]) { playerx++; } if(key[KEY_LEFT]) { playerx--; } if(key[KEY_UP]) { playery--; } if(key[KEY_DOWN]) { playery++; } speed_counter --; } draw_sprite(buffer, playerpic, playerx*tilex, playery*tiley); blit(buffer, screen, 0,0,0,0,640,640); clear_bitmap(buffer); release_screen();// Release it } destroy_bitmap(playerpic); destroy_bitmap(buffer); return 0; } END_OF_MAIN()