sdl2按键概率胜利8.1

时间:2014-07-22 00:12:03

标签: c++ c++11 windows-8

我至少遇到了按键处理的问题,并且可能事件处理通常尝试在Windows 8.1机器上使用SDL2.0.3实现消息循环,同时在c ++ 11中编程。我在SDL1中没有probs,但现在循环没有按预期运行。

循环代码是

bool        running = true;
Uint8       eventstate;
SDL_Event   event;

void msg::loop() {
    //eventstate = SDL_EventState(SDL_QUIT, SDL_ENABLE);
    //myStream << "Entering message loop" << endl;
    while(running) {
        while(SDL_PollEvent(&event) > 0) {
            if(event.type == SDL_QUIT) {
                running = false;
            }
            if(event.type == SDL_KEYDOWN) {
            cout << event.key.keysym.sym << " pressed" << endl;
            }

            if(event.type == SDL_KEYUP) {
                cout << event.key.keysym.sym << " released" << endl;
            }
         }
    }
//myStream << "Exiting message loop" << endl;
}

我的问题是它看起来没有看到SDL_QUIT事件,因此我无法关闭窗口,除非我使用任务管理器来执行此操作。在进入循环时,prog打印 1按下

按下并释放任何键导致 1发布 正在印刷

我从未看到任何按键被按下的通知。

我也正在使用根据lazyfoo教程设置的代码块13.12

我做错了什么,是Windows 8怪癖还是SDL2问题?

PS我意识到你无法看到它,但是对于尚未指向任何东西的指针,使用了nullptr而不是NULL

1 个答案:

答案 0 :(得分:0)

问题解决了

上面的代码似乎是对的。但是,SDL2的设置需要我使用

#include <SDL.h>

我的其中一个标题

#include <SDL/SDL.h>

一旦我终于注意到并恢复到第一个,所有都按预期工作。这么简单,很容易错过的东西

抱歉混淆了家伙