gpt4 book ai didi

c - SDL "dropping"初始事件?

转载 作者:行者123 更新时间:2023-11-30 14:19:53 25 4
gpt4 key购买 nike

我正在 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);
}
}

如果需要更多信息,请告诉我!

最佳答案

改变你的

case SDL_QUIT:
RUNNING = 0;
break;

case SDL_QUIT:
exit( 0 ) ;
break;

程序应该立即退出,确认事件循环工作正常并且问题出在您未显示的代码中。我的猜测是 game_run() 在某个地方再次被调用,并且因为 int RUNNING = 1; 是在每个 game_run() 的开头设置的,您进入另一个 while(RUNNING == 1) 循环。

关于c - SDL "dropping"初始事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15967262/

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