Pero, y aqui bien mi pregunta, no siempre funciona correctamente. Si presiono varias teclas a la vez, el programa no funciona como deberia. Aqui les paso un codigo patologico que ejemplifica la situacion:
- Código: Seleccionar todo
Uint8 *key=SDL_GetKeyState(NULL);
SDL_Delay(4000);
SDL_PumpEvents();
if(key[SDLK_q]==1) printf("q"); else printf("0");
if(key[SDLK_w]==1) printf("w"); else printf("0");
if(key[SDLK_e]==1) printf("e"); else printf("0");
if(key[SDLK_r]==1) printf("r"); else printf("0");
if(key[SDLK_t]==1) printf("t"); else printf("0");
if(key[SDLK_y]==1) printf("y"); else printf("0");
if(key[SDLK_u]==1) printf("u"); else printf("0");
if(key[SDLK_i]==1) printf("i"); else printf("0");
if(key[SDLK_o]==1) printf("o"); else printf("0");
if(key[SDLK_p]==1) printf("p"); else printf("0");
printf("\n");
En mi computadora si presiono "qwerty" me indica que solo se presiono "qwer"; si presiono "qweruiop", me indica que "qweruiop" se presionaron (no hubo error). Probe otras combinaciones y la verdad es que los resultados son bastantes erraticos.
Alguno tiene idea de lo que sucede?
Estoy trabajando en Linux, en C.
Saludos