首页 > 解决方案 > 主循环不退出 SDL2、C++

问题描述

我正在尝试用 SDL2 做一个非常基本的主循环,但是窗口打开了,我无法关闭它。

我写了这段代码:

bool open = true;
    while (open = true) 
  {
       SDL_Event event;
      while (SDL_PollEvent(&event) != 0)
       {  
        if (event.type == SDL_QUIT)
            {
     
            open = false;
            }
       }

   
     }

这会打开一个窗口,但是当我单击十字退出时无法关闭它。

我已经用这个代码替换了这个代码,在网上找到:

while (true)
{
  // Get the next event
  SDL_Event event;
  if (SDL_PollEvent(&event))
  {
    if (event.type == SDL_QUIT)
    {
      // Break out of the loop on quit
      break;
    }
  } 

这有效,但我不明白为什么我的代码不能正确运行。

标签: c++sdl-2mainloop

解决方案


你在这里做作业,使条件总是true

while (open = true)

您可以使用==运算符进行比较,但实际上您不需要比较,您应该简单地编写:

while (open)

推荐阅读