今日、私は自分のアプリケーションですべての異なるキーの入力を設定しました。これは、キャレットやアンパサンドなどの仮想キーを除いて正常に機能します。通常、シフトを取得する必要があるキー。SDL を使用すると、これらの仮想キーは機能しません。彼らはイベントを登録しません。
if (event.type == SDL_KEYDOWN) {
switch (event.key.keysym.sym) {
case SDLK_CARET:
Keys[KeyCodes::Caret] = KeyState::Down;
break;
case SDLK_UP:
Keys[KeyCodes::Up] = KeyState::Down;
break;
default:
break;
}
私のシステムが Up のような物理キーで動作することは間違いありません。プログラムは次のようにキーステートを照会します。
if (Keys[KeyCode] == KeyState::Down) {
lua_pushboolean(L, true);
} else {
lua_pushboolean(L, false);
}
KeyCode が引数として渡されます。
では、SDL の KeyDown イベント タイプを使用すると、仮想キー、または取得するためにシフトが必要なキーが機能しないのはなぜでしょうか? それらに到達するためにさらにコードが必要ですか? それとも私は愚かですか?