2016-11-09 54 views
0

我編碼的ALT + ENTER SDL窗口minimiser/maximiser,但即使我的varibale SMax之前設置的SDL延遲改變時,窗口只有最大限度地降低了前一秒鐘回去到它的原始狀態。如何使最小化/最大化永久化,直到ALT + ENTER再次被按下?Keystate逆變器不工作

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; 
       } 

回答

0

keyState沒有更新,直到下一次調用SDL_PumpEvents,無論你把程序睡覺與否。您需要完全跳過第二個測試,直到下一幀;一個else就足夠了。