SDL unicode键盘输入:过滤无字符输入

时间:2014-03-09 02:04:36

标签: c++ sdl emscripten

我使用此代码将键盘输入确定为unicode字符:

while(SDL_PollEvent(&event))
{
    switch (event.type)
    {
        case SDL_KEYDOWN:
        {
            SDL_KeyboardEvent* keyboard = (reinterpret_cast<SDL_KeyboardEvent*> (&event));

            //unicode input
            std::cout << (int)keyboard->keysym.unicode << std::endl;

            //conversion
            ...

            break;
        }
    }
}

我的问题是如果我只按 Shift -key(打印值为1249),keysym.unicode也有一个值。

但我只需要有效的unicode-charactars(例如:按 Shift + A

任何提示?

1 个答案:

答案 0 :(得分:0)

我使用SDL_StartTextInput();修复了它,以启用带有以下内容的textinput-events:

SDL_TEXTINPUT - 事件代替SDL_KEYDOWN工作正常。