Module: RbSDL2::Keyboard
- Extended by:
- KeyMod, SingleForwardable
- Defined in:
- lib/rb_sdl2/keyboard.rb,
lib/rb_sdl2/keyboard/key_mod.rb
Defined Under Namespace
Modules: KeyMod
Class Method Summary collapse
-
.any_key? ⇒ Boolean
いずれかのキーが押されている場合に true を戻す。つまり *any key* が押されたということ。.
-
.key?(name) ⇒ Boolean
引数に与えたキー名のキーが押されている場合に対応するスキャンコードを戻す。 押されていない場合は nil を戻す。 不正な名前の場合でも例外を戻さない、その場合 0 または nil を戻す。 キー名は SDL が定義したものである。.
- .keycode_to_name(keycode) ⇒ Object
-
.keycode_to_scancode(keycode) ⇒ Object
対応するコードが存在しない場合 0 を戻す。戻り値 は nonzero? メソッドをチェーンすることができる。 これは KeyboardState#[] での利用を考慮して設計した。.
- .mod ⇒ Object
- .mod=(state) ⇒ Object
- .name_to_keycode(name) ⇒ Object
- .name_to_scancode(name) ⇒ Object
-
.names ⇒ Object
現在押されているキーの名前を配列で戻す。.
- .scancode_to_keycode(scancode) ⇒ Object
- .scancode_to_name(scancode) ⇒ Object
-
.scancodes ⇒ Object
現在押されているキーのスキャンコードを配列で戻す。.
Methods included from KeyMod
alt_key?, caps_key?, ctrl_key?, gui_key?, l_alt_key?, l_ctrl_key?, l_gui_key?, l_shift_key?, mod_key?, mode_key?, num_key?, r_alt_key?, r_ctrl_key?, r_gui_key?, r_shift_key?, shift_key?
Class Method Details
.any_key? ⇒ Boolean
いずれかのキーが押されている場合に true を戻す。つまり *any key* が押されたということ。
26 |
# File 'lib/rb_sdl2/keyboard.rb', line 26 def any_key? = each.any? |
.key?(name) ⇒ Boolean
引数に与えたキー名のキーが押されている場合に対応するスキャンコードを戻す。押されていない場合は nil を戻す。不正な名前の場合でも例外を戻さない、その場合 0 または nil を戻す。キー名は SDL が定義したものである。
32 |
# File 'lib/rb_sdl2/keyboard.rb', line 32 def key?(name) = self[name_to_scancode(name)] |
.keycode_to_name(keycode) ⇒ Object
4 |
# File 'lib/rb_sdl2/keyboard.rb', line 4 def keycode_to_name(keycode) = ::SDL2.SDL_GetKeyName(keycode).read_string |
.keycode_to_scancode(keycode) ⇒ Object
対応するコードが存在しない場合 0 を戻す。戻り値 は nonzero? メソッドをチェーンすることができる。これは KeyboardState#[] での利用を考慮して設計した。
8 |
# File 'lib/rb_sdl2/keyboard.rb', line 8 def keycode_to_scancode(keycode) = ::SDL2.SDL_GetScancodeFromKey(keycode) |
.mod ⇒ Object
40 |
# File 'lib/rb_sdl2/keyboard.rb', line 40 def mod = ::SDL2.SDL_GetModState |
.mod=(state) ⇒ Object
45 46 47 |
# File 'lib/rb_sdl2/keyboard.rb', line 45 def mod=(state) ::SDL2::SDL_SetModState(state) end |
.name_to_keycode(name) ⇒ Object
10 |
# File 'lib/rb_sdl2/keyboard.rb', line 10 def name_to_keycode(name) = ::SDL2.SDL_GetKeyFromName(name) |
.name_to_scancode(name) ⇒ Object
12 |
# File 'lib/rb_sdl2/keyboard.rb', line 12 def name_to_scancode(name) = ::SDL2.SDL_GetScancodeFromName(name) |
.names ⇒ Object
現在押されているキーの名前を配列で戻す。
35 |
# File 'lib/rb_sdl2/keyboard.rb', line 35 def names = scancodes.map { |num| scancode_to_name(num) } |
.scancode_to_keycode(scancode) ⇒ Object
14 |
# File 'lib/rb_sdl2/keyboard.rb', line 14 def scancode_to_keycode(scancode) = ::SDL2.SDL_GetKeyFromScancode(scancode) |
.scancode_to_name(scancode) ⇒ Object
16 |
# File 'lib/rb_sdl2/keyboard.rb', line 16 def scancode_to_name(scancode) = ::SDL2.SDL_GetScancodeName(scancode).read_string |
.scancodes ⇒ Object
現在押されているキーのスキャンコードを配列で戻す。
38 |
# File 'lib/rb_sdl2/keyboard.rb', line 38 def scancodes = each.to_a.compact! |