0
我有一个应该处理SDL事件队列中的任何事件的通用函数。到目前为止,功能如下:SDL_Event.type在查询后总是为空
int eventhandler(void* args){
cout << "Eventhandler started.\n";
while (!quit){
while (SDL_PollEvent(&event)){
cout << "Got event to handle: " << event.type << "\n";
switch (event.type){
SDL_KEYDOWN:
keyDownHandler(event.key.keysym.sym);
break;
default:
break;
}
}
}
}
然而,当我测试的功能,我收到了一大堆的事件,但他们都不似乎有一个类型。它甚至不打印0或任何东西 - 什么都没有。按任意键时的输出如下所示:
Got event to handle:
而没有别的。任何教程和SDL文档都会说我应该处理这样的事件,但它不起作用。任何人都有这个问题或解决方案?
顺便说一下,事件处理程序在SDL_Thread中运行,但我不认为这是问题所在。
'SDL_KEYDOWN:'应该是'case SDL_KEYDOWN:'。 – 2009-11-15 05:15:25
@gf:你说得对,谢谢。奇怪的是,它也解决了它。 event.type仍然是空的,但*以某种方式*它的作品。谢谢。 – 2009-11-15 05:36:23
我猜你不是通过MS Visual C++编译的,而是使用“event”的一个小心词。它实际上是VC++中的关键字,为了兼容性,我会将其更改为“e”或以前的任何内容。你可能有一天会希望使用VC++,或者其他人可能想通过它来查看你的工作。毕竟这是一个非常常用的编译器。 – Zoomulator 2009-12-08 12:50:20