C++ SDL2.0.3事件循环不';行不通

C++ SDL2.0.3事件循环不';行不通,c++,sdl,C++,Sdl,我不能让SDL等一个事件。当我尝试打开窗口时,窗口只是在屏幕上短暂闪烁然后消失,我的IDE中没有任何错误或任何内容,构建日志中也没有任何内容。我查看了lazyfoo和SDL wiki,但没有任何帮助。我使用的是代码块和SDL2.0.3,以下是我目前所掌握的: while(&event != NULL && !quit) { while(SDL_PollEvent(&event) > 0) { if(event.type ==

我不能让SDL等一个事件。当我尝试打开窗口时,窗口只是在屏幕上短暂闪烁然后消失,我的IDE中没有任何错误或任何内容,构建日志中也没有任何内容。我查看了lazyfoo和SDL wiki,但没有任何帮助。我使用的是代码块和SDL2.0.3,以下是我目前所掌握的:

while(&event != NULL && !quit)
{
    while(SDL_PollEvent(&event) > 0)
    {
        if(event.type == SDL_QUIT)
        {
            quit = true;
        }
        else
        {
            if(event.type == SDL_KEYDOWN)
            {
                switch(event.key.keysym.sym)
                {
                    case SDLK_LEFT:
                        currentSurface = keyPressSurfaces[KEY_PRESS_LEFT];
                        break;
                    case SDLK_UP:
                        currentSurface = keyPressSurfaces[KEY_PRESS_UP];
                        break;
                    case SDLK_RIGHT:
                        currentSurface = keyPressSurfaces[KEY_PRESS_RIGHT];
                        break;
                    case SDLK_DOWN:
                        currentSurface = keyPressSurfaces[KEY_PRESS_DOWN];
                        break;
                    default:
                        currentSurface = keyPressSurfaces[KEY_PRESS_DEFAULT];
                    break;
                }

            }
        }
    }
}

有什么建议吗?

您正在轮询一个事件
SDL\u PollEvent
,如果您想等待一个事件,您应该首先使用
SDL\u WaitEvent

在进入此循环之前是否退出
false

如果没有要轮询的事件,我相信事件是
NULL
,导致您的程序在下次看到
时退出,而(&event!=NULL&&quit)
。如果启动时没有即时事件,您可能永远无法进入该循环。编辑:哇-以为
事件
是一个指针:


while(SDL\u PollEvent(&event))
行将循环执行,直到处理完所有挂起的事件。(!quit)
时的outter
将使您的程序保持打开状态,即使此时没有要处理的事件。

您是否已使用调试器完成此操作?…或者至少是printf debugging您是否可以添加事件声明?和
&事件!=NULL
是无用的,你应该删除它。我得到了相同的结果
&event
event
的地址,它永远不会为NULL。
SDL\u PollEvent
的返回值将告诉您是否有新事件写入了
&event
.Ah-oops。抱歉,我假设它是指针,因为他正在检查它是否为空。在这种情况下,“退出”必须是假的,对吗?是的。所有这些代码也可能位于从未调用过的函数中。从提问的方式来看,没有水晶球很难回答。