gpt4 book ai didi

C 和 SDL 退出函数

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

我使用 C 和 SDL 2.0,但我有一个问题,这个(当您单击窗口的“x”时它会退出):

void function(SDL_Surface *screen) {
SDL_Event event;
bool quit=false;
while (!quit) {
SDL_WaitEvent(&event);

switch (event.type) {
case...

case SDL_QUIT:
quit = true;
break;
}
}

这可行,但效果不佳。如果这是在这样的函数中,它只会退出到 main(),所以我需要再次单击“x”以退出整个程序。我该如何解决? (我每次都想退出整个程序,不管它是否在函数中)。

最佳答案

正如评论中已经提到的,您很可能有多个事件处理循环,这通常是不正确的设计。你的游戏总体布局应该是这样的:

int main(int argc, char* argv[]) {

// do initialize stuff

bool run = true;
SDL_Event evt;

// game loop
while (run) {
// process OS events
while(SDL_PollEvent(&evt) != 0) {
switch (evt.type) {
case SDL_QUIT:
run = false;
break;
}
}

update();
render();
}

// clean up
SDL_Quit();
return 0;
}

关于C 和 SDL 退出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47046276/

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