我正在创建一个游戏,其中按向上和向下键是事件。这些事件起作用时,似乎未检测到SDL_QUIT事件
我尝试了if / else语句。如果SDL_QUIT有效,则SDL_KEYUP和SDL_KEYDOWN无效。
SDL_Event event;
if (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT: printf("Message never appears");
break ;
case SDL_KEYDOWN: p->test1(&event);
break ;
case SDL_KEYUP: p->test2(&event);
break ;
}
}
当我按下十字关闭窗口时,屏幕上没有任何显示。我需要在终端中按Ctrl + C才能看到消息出现。我希望能够在检测事件SDL_KEYUP和SDL_KEYDOWN时关闭窗口。
答案 0 :(得分:0)
您需要遍历事件,直到没有剩余
SDL_Event event;
while (SDL_PollEvent(&event) != 0)
{
switch (event.type) {
case SDL_QUIT:
printf("Message never appears");
break ;
case SDL_KEYDOWN:
p->test1(&event);
break ;
case SDL_KEYUP:
p->test2(&event);
break ;
}
}