当前位置:  开发笔记 > 编程语言 > 正文

SDL窗口不显示

如何解决《SDL窗口不显示》经验,为你挑选了1个好方法。

这是我的代码:

#include 
#include 

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

SDL_Init(SDL_INIT_VIDEO);

SDL_Window *_window;
_window = SDL_CreateWindow("Game Engine", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 700, 500, SDL_WINDOW_RESIZABLE);

SDL_Delay(20000);

SDL_DestroyWindow(_window);
SDL_Quit();

return 0;

}

我在Xcode工作.我已下载SDL2并将库导入项目构建阶段.我已经测试过SDL2是否正常工作.

问题是窗口永远不会出现.我只是得到一个"旋转mac轮",然后程序在延迟后退出.我确保窗口没有隐藏在某处.

想法?



1> Toad..:

你必须给系统一个运行事件循环的机会.

最简单的是自己轮询事件:

SDL_Event e;
bool quit = false;
while (!quit){
    while (SDL_PollEvent(&e)){
        if (e.type == SDL_QUIT){
            quit = true;
        }
        if (e.type == SDL_KEYDOWN){
            quit = true;
        }
        if (e.type == SDL_MOUSEBUTTONDOWN){
            quit = true;
        }
    }
}

而不是等待循环


上面添加/说明:如果发现SDL_GetError()没有报告任何内容,并且SDL_UpdateWindowSurface()/ etc报告为0(无错误),则上述代码很有可能是可修复的,尤其是在OSX上。您可以在视频设置/初始化/初始绘图调用之后放置事件轮询循环。最初的SDL SDK示例曾经用于包含轮询,但在线教程通常会在处理过程中的较晚阶段(处理输入)包含此内容,这可能会造成混乱。
这次真是万分感谢!极大地帮助了我。
推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有