目次 - API(機能別) - キーボード
キーボード
インクルードファイル:
SDL_keyboard.h
SDL_keycode.h
SDL_scancode.h
概要
ここに分類される関数は, キーボードの入力を扱うものである.
SDLにはキーを表す異なる値 - スキャンコードとキーコードがある.
SDL_Scancodeの値はキーボード上のキーの物理的な位置を表すために使う.
この型の値はキーボードのキーを表し, SDL_Eventのkey.keysym.scancodeフィールドなどで使われる.
SDL_Scancodeの値はUSBの標準(http://www.usb.org/developers/docs/)に基づいている.
スキャンコードの定数は, キーの名前の先頭にSDL_SCANCODE_をつけたものである. (例: SDL_SCANCODE_SPACE)
SDL_Keycodeの値は, 現在のキーボードレイアウトにマッピングされ, SDL_Scancodeと一対一の関係にある.
この型の値はキーボードの文字を表し, SDL_Eventのkey.keysym.symフィールドなどで使われる.
SDL_Keycodeの値は, 修飾キーを押さずにそのキーを押した場合の文字のUnicodeに基づいている. 文字でないキーはスキャンコードの最上位ビットを立てた(0x8000000との論理和)値である.
キーコードの定数は, キーの文字(小文字)の先頭にSDLK_をつけたものである. (例: SDLK_SPACE)
キーボードの一番上の行にある数字キーは特別な例外で, キーボードレイアウトに関係なく常にSDLK_0, SDLK_1, ..., SDLK_9にマッピングされる.
2つの値の大きな違いは, OSが物理的なキーを別の仮想キーに割り当てているときに現れる.
例えば, 標準的なQWERTYキーボードをドイツ語のQWERTZレイアウトに割り当てると, "Y"キーのスキャンコードはSDL_SCANCODE_Yだが, キーコードはSDLK_zとなる.
どちらのコードを使うかはアプリケーションによる.
操作がレイアウトによる(例えば"WASD"キーを左手で扱う方向キーとする)場合はスキャンコードが適しているが, 操作が文字による(例えば"I"がアイテムを意味する)場合はキーコードのほうがよい.
関数
- SDL_ClearComposition - コンポジションウィンドウ/IME(漢字変換中ウィンドウ・矩形)をIMEを無効化せずに閉じる
- SDL_GetKeyboardFocus - キーボードフォーカスのあるウィンドウを得る
- SDL_GetKeyboardState - キーボードの状態を得る
- SDL_GetKeyFromName - 人が読めるキー名からキーコードを得る
- SDL_GetKeyFromScancode - 指定のキースキャンコードから現在のキーボードレイアウトに割り当てられたキーコードを得る
- SDL_GetKeyName - キーコードから人が読める名前を得る
- SDL_GetModState - 修飾キーの状態を得る
- SDL_GetScancodeFromKey - 指定のキーコードから現在のキーボードレイアウトに割り当てられたスキャンコードを得る
- SDL_GetScancodeFromName - 人が読めるキー名からスキャンコードを得る
- SDL_GetScancodeName - スキャンコードから人が読める名前を得る
- SDL_HasScreenKeyboardSupport - スクリーンキーボードに対応しているかチェックする
- SDL_IsScreenKeyboardShown - スクリーンキーボードが指定のウィンドウに表示されているかチェックする
- SDL_IsTextInputActive - Unicodeテキスト入力イベントが有効かチェックする
- SDL_IsTextInputShown - IMEコンポジット(変換中ウィンドウ・矩形)または変換候補が現在表示されているかを戻す
- SDL_ResetKeyboard - キーボードの状態をクリアする
- SDL_SetModState - 修飾キーを設定する
- SDL_SetTextInputRect - Unicodeテキスト入力で使う領域を設定する
- SDL_StartTextInput - テキスト入力イベントの受け入れを開始する
- SDL_StopTextInput - テキスト入力イベントの受け入れを停止する
型
- SDL_Keycode - SDL仮想キーコードの型
構造体
- SDL_Keysym - キーイベントで使われたキーの構造体
列挙体
- SDL_Keymod - 修飾キーマスクの列挙体
- SDL_Scancode - SDLキースキャンコードの列挙体
マクロ
- SDL_SCANCODE_TO_KEYCODE
- SDLK_SCANCODE_MASK
SDL Wikiへのリンク
Keyboard Support - SDL Wiki