生成SDLK_LEFT SDL_Event的正确方法?
问题描述:
我想生成一个SDL_Event,但它似乎不工作。这里是我的代码来生成:生成SDLK_LEFT 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;
没有成功。
答
我现在用下面的代码工作:
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;
}