我正在尝试使用SDL轮询我正在编写的模拟器的键盘状态。我使用以下代码进行测试:
#include <iostream>
#include <SDL.h>
#include <unistd.h>
using namespace std;
int main() {
// SDL setup
if (SDL_Init(SDL_INIT_EVENTS) != 0) {
cerr << "SDL Initialization failure." << endl;
return 1;
}
atexit(SDL_Quit);
const Uint8* keyboard = SDL_GetKeyboardState(NULL);
while (1) {
SDL_PumpEvents();
if (keyboard[SDL_SCANCODE_UP])
cerr << "KEY UP" << endl;
sleep(1);
}
return 0;
}
程序启动没有问题,但是尽管按下向上箭头键,我从未得到KEY UP输出。我有一种偷偷摸摸的怀疑,我错过了一些东西,但无法弄清楚是什么。