Method: MSPhysics::CommonContext#toggle_key

Defined in:
RubyExtension/MSPhysics/common_context.rb

#toggle_key(vk) ⇒ Integer

Note:

The vk parameter is not case sensitive.

Get toggled state of a keyboard key.

Examples:

Using in controller

toggle_key('space') * 10

Parameters:

  • vk (String, Symbol, Integer)

    Virtual key code or name.

Returns:

  • (Integer)

    1 if toggled down, 0 if toggled up.

See Also:

Since:

  • 1.0.0



182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# File 'RubyExtension/MSPhysics/common_context.rb', line 182

def toggle_key(vk)
  vkc = AMS::Keyboard.get_key_code(vk)
  vks = AMS::Keyboard.key_down?(vkc)
  vkt = @@_toggled[vkc] || 0
  if vkt == 0 && vks
    @@_toggled[vkc] = 1
    1
  elsif (vkt == 1 && vks) || (vkt == 2 && !vks)
    1
  elsif vkt == 1 && !vks
    @@_toggled[vkc] = 2
    1
  elsif vkt == 2 && vks
    @@_toggled[vkc] = 3
    0
  elsif vkt == 3 && !vks
    @@_toggled[vkc] = 0
    0
  else
    0
  end
end