Macos 生成SDLK\U左SDL\U事件的正确方法?

Macos 生成SDLK\U左SDL\U事件的正确方法?,macos,events,keyboard,sdl,Macos,Events,Keyboard,Sdl,我想生成一个SDL_事件,但它似乎不起作用。以下是我要生成的代码: 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])

我想生成一个SDL_事件,但它似乎不起作用。以下是我要生成的代码:

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]键盘事件的简单方法
?我还尝试了
keys[SDLK\u LEFT]=true
没有成功。

再次调用
SDL\u GetKeyState()
之前请尝试。

我现在可以使用以下代码进行操作:

keys = SDL_GetKeyState(NULL);
keys[SDLK_LEFT] = TRUE;
阅读完这些键后,我将它们设置回
FALSE

尝试以下操作:

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