2016-03-31 50 views
-2

我有一個快門窗口,當頂部的X按鈕被點擊時,它應該關閉。我有所有必要的代碼來運作,但它不會。Allegro5窗口將不會關閉

初始化顯示我有這樣的:

display = al_create_display(dwidth, dheight); 
    if (!display){ 
     error.message("Fatal Error", "ERROR:", "DISPLAY HAS FAILED TO BE CREATED"); 
    } 

要初始化事件隊列我有這樣的:

ALLEGRO_EVENT_QUEUE *event_queue = NULL; 

event_queue = al_create_event_queue(); 
if (!event_queue){ 
    error.message("Fatal Error", "ERROR:", "EVENT QUEUE HAS FAILED TO BE CREATED"); 
} 

al_register_event_source(event_queue, al_get_display_event_source(display)); 

,並向輸入作出響應,並與渲染或關閉我的窗口這個:

al_start_timer(tick); 
while (true) 
{ 
    //handle input and timer 
    ALLEGRO_EVENT ev; 
    al_wait_for_event(event_queue, &ev); 

    if (ev.type = ALLEGRO_EVENT_TIMER){ 
     redraw = true; 
     //put all fps dependant function here 

    } 
    else if (ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE){ 
     break; 
    } 

    if (redraw && al_is_event_queue_empty(event_queue)) { 
     //FPS independant functions go here 


     al_flip_display(); 
     al_clear_to_color(al_map_rgb(255, 255, 255)); 
     redraw = false; 
    } 
} 

回答

1

我覺得你需要改行:

else if (ev.type == ALLEGRO_EVENT_KEY_DOWN){ 

else if (ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE){ 
+0

這是一個錯字,我從錯誤的文件複製它。但是我在修改它的時候設法修復了它,所以謝謝我的猜測。 –