我正在使用C與gcc編譯器混淆SDL2。我已經設法在2秒後自動加載和關閉圖像,但現在我要等到用戶按下頂部的X按鈕或用戶按下按鍵。SDL_PollEvent()循環未執行。沒有事件正在排隊?
但是,幾次打印聲明顯示一切正常後,但我的SDL_PollEvent()
循環,我想知道是否有任何事件正在排隊。當我運行我的程序時,我的圖像顯示在屏幕上,程序等待我的輸入。我瘋狂地砸碎鍵盤上的任何按鍵以獲得響應,但沒有任何反應。應該發生什麼是一條消息,說「你按了一些東西!」
然後我嘗試點擊窗口頂部的X,但沒有任何反應。我可以退出程序的唯一方法是如果我在終端中按下CTRL + C,請按。
這裏是事件循環一塊我的代碼:
/* Handle events on queue */
while(SDL_PollEvent(&e) != 0)
{
/* This print statement does not execute */
printf("Handling events!\n");
/* User quits */
switch(e.type)
{
case SDL_KEYDOWN:
switch(e.key.keysym.sym)
{
case SDLK_ESCAPE:
printf("Escape pressed!\n");
quit = true;
break;
default: printf("You pressed something!");
}
case SDL_QUIT:
quit = true;
break;
default: printf("Print anything!\n");
}
}
您是初始化事件子系統還是使用多個線程? –