我对SDL有一点问题: 在启动我的程序时(在Archlinux 64位上),SDL_event给了我一些SDL_KEYDOWN事件。令人烦恼的是,当我按下ESCAPE时我的程序退出。
这就是守则:
void Input::update() {
[...]
while(SDL_PollEvent(event)) {
if (event != NULL) {
handleInput();
}
}
// SDL_PumpEvents(); Commented out, because of jrok's suggestion.
SDL_GetMouseState(&mousex, &mousey);
}
和
void Input::handleInput() {
switch(event->type) {
case SDL_KEYDOWN:
setKey(event->key, true);
break;
case SDL_KEYUP:
setKey(event->key, false);
break;
case SDL_QUIT:
setQuit();
break;
default:
break;
}
}
setKey()将bool-Array的Element设置为给定值(true / false)。
此外,它不仅是Escape键。通常也会按下其他键。
答案 0 :(得分:0)
问题是,我没有初始化我的布尔数组。所以剩下随机值......
这有助于:
for (int i = 0; i < MAX_VAL; i++) {
keys[i] = false;
}