释放钥匙时触发SDL left control keydown事件
因此,我有以下代码侦听keydown事件,然后在收到一个keydown事件后立即退出:释放钥匙时触发SDL left control keydown事件,c,events,sdl,keydown,C,Events,Sdl,Keydown,因此,我有以下代码侦听keydown事件,然后在收到一个keydown事件后立即退出: int main(int argc, char** argv) { SDL_Init(SDL_INIT_VIDEO); SDL_Surface* screen = SDL_SetVideoMode(640, 480, 32, SDL_DOUBLEBUF); SDL_Event _event; while (1) { while (SDL_PollEvent(&a
int main(int argc, char** argv) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface* screen = SDL_SetVideoMode(640, 480, 32, SDL_DOUBLEBUF);
SDL_Event _event;
while (1) {
while (SDL_PollEvent(&_event)) {
if (_event.type == SDL_KEYDOWN) {
return 0;
}
}
SDL_GL_SwapBuffers();
}
}
当我运行它时,我可以按任意箭头键、字母、数字、F1-F12。。。除了左控制键外,几乎可以按任何键,程序将立即退出。但当我按下左控制键时,程序直到我松开键才退出。 尽管示例中没有显示,但在按住左控件的同时按下另一个键(例如ctrl+s)会触发缺少控件的keydown事件(以及显示“s”已按下的第二个事件) 有没有办法禁用左控制键的这种奇怪行为?
顺便说一句,这是在Windows上使用mingw。我没有在任何其他编译器/操作系统上测试过这种行为。因此,我忘记将sdl.dll与可执行文件放在同一个目录中。它正在加载另一个sdl.dll,恰好位于path环境变量上。我将sdl.dll(它与我编译时使用的版本(1.2.14)相匹配)放入我的应用程序目录中,现在可以正常工作了 结果是,我忘了将sdl.dll放入与可执行文件相同的目录中。它正在加载另一个sdl.dll,恰好位于path环境变量上。我将sdl.dll(它与我编译时使用的版本(1.2.14)相匹配)放入我的应用程序目录中,现在可以正常工作了 你试过了吗?@Banthar我试过了,但它所做的只是诱捕老鼠。你试过了吗?@Banthar我试过了,但它所做的只是诱捕老鼠。