我使用此代码将键盘输入确定为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 )
任何提示?
答案 0 :(得分:0)
我使用SDL_StartTextInput();
修复了它,以启用带有以下内容的textinput-events:
SDL_TEXTINPUT
- 事件代替SDL_KEYDOWN
工作正常。