Я использую этот код, чтобы определить ввод с клавиатуры как символ 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
имеет значение, если бы я только нажимал сдвиг-ключ (напечатанное значение 1249).
Но мне нужны только действительные символы Юникода (например: нажатие сдвиг+)
Есть намеки?
Я исправил это используя: SDL_StartTextInput();
включить textinput-события с:
SDL_TEXTINPUT
событие вместо SDL_KEYDOWN
работает нормально.
Других решений пока нет …