我在 Ubuntu 12.04 上使用 SDL 1.2 进行编程。SDL 似乎“丢弃”了给事件循环的第一个事件。例如,如果我要通过“x”框检查是否退出游戏,然后在我的应用程序中单击“x”框,则没有任何反应。然而,在第二次点击游戏退出。我的游戏循环:
void game_run()
{
int RUNNING = 1;
while(RUNNING == 1)
{
while(SDL_PollEvent(&scr.event))
{
switch(scr.event.type)
{
case SDL_QUIT:
RUNNING = 0;
break;
case SDL_KEYDOWN:
switch(scr.event.key.keysym.sym)
{
case SDLK_ESCAPE:
RUNNING = 0;
break;
default:
break;
}
break;
default:
break;
}
}
// draw here
SDL_Flip(scr.buffer);
}
}
如果需要更多信息,请告诉我!