我一直在Xcode上使用我的Macbook上的SDL2一點點,我非常高興。最近我試圖收到重點丟失的事件,但它不起作用。經過一番修改之後,我發現沒有收到窗口事件,除了一個窗口事件,其類型爲512,以隨機間隔每秒顯示2-5次。 WindowEventID
是一個枚舉,而不是十六進制格式,所以它不應該是一些十六進制數字。我在512的SDL2框架中搜索了一下,結果什麼都沒發現。其他事件,如SDL_QUIT
和SDL_KEYDOWN
工作得很好。任何人都知道發生了什麼事?SDL2沒有收到窗口事件
這裏是我的事件循環:
SDL_Event event;
bool running = false;
while(running) {
while(SDL_PollEvent(&event)) {
if(event.type == SDL_QUIT)
running = false;
else if(event.type == SDL_KEYDOWN) {
cout << event.key.type << endl;
}
else if(event.type == SDL_WINDOWEVENT) {
cout << event.window.type << endl;
}
}
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
}
'while(SDL_PollEvent(&event)){}'會消耗大量的CPU。這是一個非阻塞操作,並且在沒有事件時將保持返回false。 – UmNyobe
當SDL_PollEvent第一次返回false時,while循環將退出。 – ojs