2017-07-29 116 views
-1

我正在用allegro庫開發遊戲。我寫了一個starter C代碼,然後在Ubuntu Terminal上編譯程序。之後,當我打開輸出程序時,程序打開但未關閉。取消按鈕(X)不起作用。我無法註銷輸出C程序

這裏是我的啓動代碼:

#include <allegro.h> 

void Baslat(); 
void Bitir(); 

int main(){ 
     Baslat(); 
     while(!key[KEY_ESC]){ 

     } 
     Bitir(); 
     return 0; 
} 

END_OF_MAIN() 

void Baslat(){ 
     int depth,res; 
     allegro_init(); 
     depth = desktop_color_depth(); 
     if(depth == 0) depth=32; 
     set_color_depth(depth); 
     res=set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640,480,0,0); 
     if(res!=0){ 
       allegro_message("%s\n", allegro_error);     exit(-1); 
     } 
     install_timer(); 
     install_keyboard(); 
     install_mouse(); 

} 


void Bitir(){ 
    clear_keybuf(); 

} 
+1

試過調試嗎?在調試器中運行您的應用程序,並在退出時掛起時按Ctrl + C。 – arrowd

+0

我根據標籤回答了'allegro5',但看起來您實際上使用的是'allegro4'。你對哪種版本的Allegro感興趣? – rcorre

回答

0

爲了應對按下allegro5的X按鈕的用戶,你必須趕上ALLEGRO_EVENT_DISPLAY_CLOSEThis tutorial提供了響應該事件的示例。

+0

是的,我使用allegro4,但我無法理解你的答案。 我應該使用哪一個allegro版本?有沒有辦法在allegro4上解決我的問題? –

+0

要使用哪個版本是個人決定,但除非您有強制使用舊版本的理由,否則我會使用最新版本。我不使用'allegro4',所以我不知道如何解決你的問題。如果你正在使用'allegro5',我鏈接的教程給出了一個代碼示例和解釋,確切地說你想要什麼。 – rcorre