2011-11-30 38 views
1

我想生成一个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;没有成功。

回答

0

我现在用下面的代码工作:

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

读取密钥后我设置回FALSE

0

试试这个:

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