0
在我的項目中,我無法獲得簡單的開關語句以用於SDL輸入。這裏是這樣的例子:SDL_KEYDOWN和密鑰識別不正常
SDL_Event event;
SDL_PollEvent(&event);
if (event.type == SDL_KEYDOWN)
{
switch (event.key.keysym.sym)
{
case SDLK_a: m_x -= 30;
break;
case SDLK_d: m_x += 30;
break;
case SDLK_w: m_y -= 30;
break;
case SDLK_s: m_y += 30;
break;
}
}
當我運行這個,首先看起來SDL_KEYDOWN似乎沒有被識別。我的情況也不是這樣。於是我轉向代碼:
SDL_Event event;
SDL_PollEvent(&event);
if (event.type == 771)
{
switch (event.key.keysym.sym)
{
case SDLK_a: m_x -= 30;
break;
case SDLK_d: m_x += 30;
break;
case SDLK_w: m_y -= 30;
break;
case SDLK_s: m_y += 30;
break;
default: m_y += 1;
}
}
這將導致默認情況下,當我拿着運行或按任意鍵,那麼根據m_y + = 1。我的物體移動。如果我刪除默認的情況下,嘗試按w ,a,s或d,沒有任何反應。如果我保留m_y + = 1,但使用SDL_KEYDOWN而不是771,則不會發生任何事情。 (每當按下某個鍵時,我都通過打印event.type獲得了771代碼)。
你確定你正在#include SDL.h嗎? – Exceptyon 2014-10-31 13:06:50