gpt4 book ai didi

c - SDL_PollEvent() 循环未执行。没有事件正在排队吗?

转载 作者:行者123 更新时间:2023-11-30 15:19:18 29 4
gpt4 key购买 nike

我目前正在使用 C 和 gcc 编译器来处理 SDL2。我已经设法让图像在 2 秒后自动加载并关闭,但现在我想等到用户按下顶部的 X 按钮,或者用户按下 ESC 键.

但是,在几个打印语句显示一切正常但我的 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");
}
}

最佳答案

确保您在游戏循环内调用 SDL_PollEvent 循环。 SDL_PollEvent 不会阻塞等待事件,因此您需要每帧不断调用它,直到有一些事件需要处理。

除此之外,您的代码看起来不错。

关于c - SDL_PollEvent() 循环未执行。没有事件正在排队吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30769694/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com