Module: RbSDL2::Keyboard
- Extended by:
- ModState
- Defined in:
- lib/rb_sdl2/keyboard/state.rb,
lib/rb_sdl2/keyboard/keyboard.rb,
lib/rb_sdl2/keyboard/mod_state.rb
Defined Under Namespace
Modules: ModState Classes: State
Constant Summary
Constants included from ModState
ModState::KMOD_ALT, ModState::KMOD_CAPS, ModState::KMOD_CTRL, ModState::KMOD_GUI, ModState::KMOD_LALT, ModState::KMOD_LCTRL, ModState::KMOD_LGUI, ModState::KMOD_LSHIFT, ModState::KMOD_MODE, ModState::KMOD_NONE, ModState::KMOD_NUM, ModState::KMOD_RALT, ModState::KMOD_RCTRL, ModState::KMOD_RGUI, ModState::KMOD_RSHIFT, ModState::KMOD_SCROLL, ModState::KMOD_SHIFT
Class Method Summary collapse
-
.any_key? ⇒ Boolean
(also: hit_any_key?, pressed_any_key?)
いずれかのキーが押されている場合に true を戻す。つまり *any key* が押されたということ。 このメソッドを使用するには定期的に Event.pump を呼び出してキーボード状態を更新する必要があります。.
-
.key?(s) ⇒ Boolean
(also: pressed_key?)
s に与えた文字列に対応するスキャンコードのキーが押されてい場合に true を戻します。 キーが押されていない場合、対応するスキャンコードが無い場合は false を戻します。 このメソッドを使用するには定期的に Event.pump を呼び出してキーボード状態を更新する必要があります。.
-
.keycode_name(num) ⇒ Object
num に与えたキーコードに対応する文字列を戻します。対応する文字列が無い場合は nil を戻します。.
-
.keycode_to_scancode(num) ⇒ Object
キーコードをスキャンコードに変換します。対応するキーコードがない場合は nil を戻します。.
-
.pressed_keys ⇒ Object
現在キーボードの押されているキーの名前を配列で戻します。 このメソッドを使用するには定期的に Event.pump を呼び出してキーボード状態を更新する必要があります。.
-
.scancode?(num) ⇒ Boolean
num に与えたスキャンコードのキーが押されている場合に true を戻します。 スキャンコードに対応するキーがない場合、キーが押されていない場合は false を戻します。.
-
.scancode_name(num) ⇒ Object
num に与えたスキャンコードに対応する文字列を戻します。対応する文字列が無い場合は nil を戻します。.
-
.scancode_to_keycode(num) ⇒ Object
スキャンコードをキーコードに変換します。対応するキーコードがない場合は nil を戻します。.
- .state ⇒ Object
-
.to_keycode(s) ⇒ Object
s に与えた文字列に対応するキーコードを戻します。対応するキーコードがない場合は nil を戻します。.
-
.to_scancode(s) ⇒ Object
s に与えた文字列に対応するスキャンコードを戻します。対応するスキャンコードが無い場合は nil を戻します。.
Methods included from ModState
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?, scroll_lock_key?, shift_key?, state=, state?
Class Method Details
.any_key? ⇒ Boolean Also known as: hit_any_key?, pressed_any_key?
いずれかのキーが押されている場合に true を戻す。つまり *any key* が押されたということ。 このメソッドを使用するには定期的に Event.pump を呼び出してキーボード状態を更新する必要があります。
9 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 9 def any_key? = state.any? |
.key?(s) ⇒ Boolean Also known as: pressed_key?
s に与えた文字列に対応するスキャンコードのキーが押されてい場合に true を戻します。 キーが押されていない場合、対応するスキャンコードが無い場合は false を戻します。 このメソッドを使用するには定期的に Event.pump を呼び出してキーボード状態を更新する必要があります。
16 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 16 def key?(s) = state[::SDL.GetScancodeFromName(s)] |
.keycode_name(num) ⇒ Object
num に与えたキーコードに対応する文字列を戻します。対応する文字列が無い場合は nil を戻します。
20 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 20 def keycode_name(num) = (s = ::SDL.GetKeyName(num).read_string).empty? ? nil : s |
.keycode_to_scancode(num) ⇒ Object
キーコードをスキャンコードに変換します。対応するキーコードがない場合は nil を戻します。
23 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 23 def keycode_to_scancode(num) = ::SDL.GetScancodeFromKey(num).nonzero? |
.pressed_keys ⇒ Object
現在キーボードの押されているキーの名前を配列で戻します。 このメソッドを使用するには定期的に Event.pump を呼び出してキーボード状態を更新する必要があります。
27 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 27 def pressed_keys = state.to_a.map { |n| Keyboard.scancode_name(n) } |
.scancode?(num) ⇒ Boolean
num に与えたスキャンコードのキーが押されている場合に true を戻します。 スキャンコードに対応するキーがない場合、キーが押されていない場合は false を戻します。
34 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 34 def scancode?(num) = state.scancode?(num) |
.scancode_name(num) ⇒ Object
num に与えたスキャンコードに対応する文字列を戻します。対応する文字列が無い場合は nil を戻します。
30 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 30 def scancode_name(num) = (s = ::SDL.GetScancodeName(num).read_string).empty? ? nil : s |
.scancode_to_keycode(num) ⇒ Object
スキャンコードをキーコードに変換します。対応するキーコードがない場合は nil を戻します。
37 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 37 def scancode_to_keycode(num) = ::SDL.GetKeyFromScancode(num).nonzero? |
.state ⇒ Object
41 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 41 def state = State.instance |
.to_keycode(s) ⇒ Object
s に与えた文字列に対応するキーコードを戻します。対応するキーコードがない場合は nil を戻します。
44 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 44 def to_keycode(s) = ::SDL.GetKeyFromName(s).nonzero? |
.to_scancode(s) ⇒ Object
s に与えた文字列に対応するスキャンコードを戻します。対応するスキャンコードが無い場合は nil を戻します。
47 |
# File 'lib/rb_sdl2/keyboard/keyboard.rb', line 47 def to_scancode(s) = ::SDL.GetScancodeFromName(s).nonzero? |