Правильный способ создания SDLK_LEFT SDL_Event? - PullRequest
1 голос
/ 30 ноября 2011

Я хотел бы создать SDL_Event, но это не похоже на работу.Вот мой код для генерации:

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);

Позже я проверяю, есть ли он:

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

Почему это не работает?Нужно ли мне инициализировать что-нибудь еще?Или это и есть более простой способ создать [SDLK_LEFT] Keyboard event?Я также попробовал keys[SDLK_LEFT] = true; безуспешно.

Ответы [ 3 ]

0 голосов
/ 01 декабря 2011

У меня теперь работает со следующим кодом:

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

После прочтения клавиш я установил их обратно на FALSE

0 голосов
/ 20 сентября 2015

попробуйте это:

Uint8 *key = SDL_GetKeyState(NULL);
    if (key[SDLK_a])
        {
        //Do something;
        }
    if (key[SDLK_d])
        {
        //Do something;
        }
0 голосов
/ 30 ноября 2011

Попробуйте SDL_PumpEvents() перед повторным вызовом SDL_GetKeyState().

...