Keystate 逆变器不工作

Keystate Inverter not working

我正在编写 ALT + ENTER SDL Window minimiser/maximiser,但是即使我在变量 SMax 改变后,window 仅最小化一秒钟,然后返回到原始状态。在再次按下 ALT + ENTER 之前,如何使 minimisation/maximisation 永久化?

if (keyState[SDL_SCANCODE_LALT] && keyState[SDL_SCANCODE_RETURN] && SMax)
                {
                    SDL_SetWindowFullscreen(window, 0);
                    SDL_SetWindowSize(window, 600, 400);
                    SDL_RenderPresent(renderTarget);
                    w = 600;
                    h = 400;
                    SDL_Delay(1000);
                    SMax = false;
                }

                if (keyState[SDL_SCANCODE_LALT] && keyState[SDL_SCANCODE_RETURN] && !SMax)
                {
                    SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN_DESKTOP);
                    SDL_RenderPresent(renderTarget);
                    SDL_Delay(1000);
                    SMax = true;
                }

keyState 直到下一次调用 SDL_PumpEvents 才会更新,无论您是否让程序进入休眠状态。您需要完全跳过第二个测试,直到下一帧; else 就够了。