2011-01-12 31 views
0

如何使用SDL檢測同時鍵重複?現在我可以同時檢測按下的按鍵(但不是全部按下時)或按住一個按鍵。我希望能夠在任何時候檢測到所有按下的按鍵。如何使用SDL同時獲得重複密鑰?

我的代碼

SDL_EnableKeyRepeat (100, 200);

while (SDL_PollEvent (&event)) {

if (event.type == SDL_KEYDOWN) {

if (event.key.keysym.sym == SDLK_t) { 

    } else if (event.key.keysym.sym == SDL_y) { 

    } 

} else if (blah) {

//blah blah blah 

}

}

+0

``不是[有效SO降價](http://stackoverflow.com/editing-help)。 – genpfault 2011-01-12 17:08:09

回答

1

首先檢測當前被抑制可能被證明是不可能的所有鍵。由於鍵盤限制,大多數鍵盤同時按下4-6個按鈕,在按下/釋放按鍵後不會註冊。其次,我不會建議使用密鑰重複。不知道其他人的體驗可能有所不同,但通過存儲您感興趣的密鑰狀態,您可以獲得更高的準確性。即在簡單的遊戲中,這將是方向鍵。當按下左鍵時,您只需設置左移,釋放左鍵或右鍵時可以將其解除。如果你需要它來輸入類似的東西,你可以使用一些數組的pressed keys並將鍵被按下。 (我假設你試圖做一些類似的遊戲)。