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

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* が押されたということ。

Returns:

  • (Boolean)


26
# File 'lib/rb_sdl2/keyboard.rb', line 26

def any_key? = each.any?

.key?(name) ⇒ Boolean

引数に与えたキー名のキーが押されている場合に対応するスキャンコードを戻す。押されていない場合は nil を戻す。不正な名前の場合でも例外を戻さない、その場合 0 または nil を戻す。キー名は SDL が定義したものである。

Returns:

  • (Boolean)


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)

.modObject



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)

.namesObject

現在押されているキーの名前を配列で戻す。



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

.scancodesObject

現在押されているキーのスキャンコードを配列で戻す。



38
# File 'lib/rb_sdl2/keyboard.rb', line 38

def scancodes = each.to_a.compact!