Я полностью в тупике относительно того, почему этот код не получает никаких событий нажатия клавиш SDL. Другие события SDL (удаленные для ясности) работают нормально. Он не работает на моих компьютерах XP или Vista. Никаких ошибок компиляции/ссылок, просто никогда не получайте событие keydown.Нет обнаруженных событий нажатия клавиш SDL
#include "SDL/SDL.h"
// Yes SDL.lib and SDLmain.lib are linked
Uint32 TimeLeft(void)
{
static Uint32 next_time = 0;
Uint32 now;
now = SDL_GetTicks();
if (next_time <= now) {
next_time = now + tickInterval;
return 0;
}
return(next_time-now);
}
int main(int argc, char **argv)
{
if(-1 == SDL_Init(SDL_INIT_EVERYTHING))
{
cerr << "Error: SDL_Init failed" << endl;
return -1;
}
SDL_Event event;
bool quit = false;
while(!quit)
{
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_KEYDOWN:
switch(event.key.keysym.sym)
{
case SDLK_ESCAPE:
case SDLK_q:
quit = true;
break;
default:
break;
}
break;
case SDL_JOYAXISMOTION:
// stuff removed
break;
case SDL_QUIT:
quit = true;
break;
default:
break;
}
}
SDL_Delay(TimeLeft());
}
SDL_Quit();
return 0;
}
Спасибо, я знал, что это была какая-то очевидная вещь, которую я пропускал. – 2008-11-02 20:30:31