1

I would like to generate an SDL_Event but it doesn't seem work. Here's my code to generate:

Uint8* keys; 

SDL_Event ev;
ev.type = SDL_KEYDOWN;
ev.key.state = SDL_PRESSED;
ev.key.keysym.sym = SDLK_LEFT;

SDL_PushEvent(&ev); 
keys = SDL_GetKeyState(NULL);

Later I'm checking if it's there:

if(keys)
{
    if(keys[SDLK_LEFT])
    {
        //Do something
    }
…

Why doesn't it work? Do I need to initialize anything else? Or it there and easier way to generate an [SDLK_LEFT] Keyboard event? I've also tried keys[SDLK_LEFT] = true; with no succes.

genpfault
  • 51,148
  • 11
  • 85
  • 139
Johan_
  • 440
  • 5
  • 14

3 Answers3

0

try this:

Uint8 *key = SDL_GetKeyState(NULL);
    if (key[SDLK_a])
        {
        //Do something;
        }
    if (key[SDLK_d])
        {
        //Do something;
        }
0

Try SDL_PumpEvents() before calling SDL_GetKeyState() again.

genpfault
  • 51,148
  • 11
  • 85
  • 139
0

I got it working now with the following code:

keys = SDL_GetKeyState(NULL);
keys[SDLK_LEFT] = TRUE;

After reading the keys I set them back to FALSE

Johan_
  • 440
  • 5
  • 14