0

我正在使用此代码将键盘输入确定为 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;
        }
    }
}

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

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

有什么提示吗?

4

1 回答 1

0

我使用以下方法修复它:SDL_StartTextInput();启用 textinput-events:

SDL_TEXTINPUT-event 而不是SDL_KEYDOWN工作正常。

于 2014-03-09T15:50:10.650 回答