2011-11-30 44 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; 
     }