主循环不退出 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;
    }
  } 

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

解决方法

您在此处进行分配,使条件始终为 true

while (open = true)

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

while (open)