目次 - 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"がアイテムを意味する)場合はキーコードのほうがよい.

列挙体

  1. SDL_Keycode
  2. SDL_Keymod
  3. SDL_Scancode

構造体

  1. SDL_Keysym

関数

  1. SDL_GetKeyFromName
  2. SDL_GetKeyFromScancode
  3. SDL_GetKeyName
  4. SDL_GetKeyboardFocus
  5. SDL_GetKeyboardState
  6. SDL_GetModState
  7. SDL_GetScancodeFromKey
  8. SDL_GetScancodeFromName
  9. SDL_GetScancodeName
  10. SDL_HasScreenKeyboardSupport
  11. SDL_IsScreenKeyboardShown
  12. SDL_IsTextInputActive
  13. SDL_SetModState
  14. SDL_SetTextInputRect
  15. SDL_StartTextInput
  16. SDL_StopTextInput

SDL Wikiへのリンク

Keyboard Support - SDL Wiki