Class Rubygame::KeyDownEvent
In: lib/rubygame/event.rb
Parent: Rubygame::Event

Indicates that a keyboard key was pressed.

This event has these attributes:

string:a human-readable string telling what key was pressed, or nil. See key2str.
key:the integer keysym for the key. These can be compared with the K_* constants in the Rubygame module, e.g. Rubygame::K_A.
mods:an Array of zero or more keysyms indicating which modifier keys were being pressed when the key was pressed. You can compare with these constants in the Rubygame module:
K_RSHIFT:shift key (right side)
K_LSHIFT:shift key (left side)
K_RCTRL:ctrl key (right side)
K_LCTRL:ctrl key (left side)
K_RALT:alt key (right side)
K_LALT:alt key (left side)
K_RMETA:meta key (right side)
K_LMETA:meta key (left side)
K_RSUPER:super key, aka. Windows key (right side)
K_LSUPER:super key, aka. Windows key (left side)
K_RALT:alt key (right side)
K_NUMLOCK:num lock
K_CAPSLOCK:caps lock
K_MODE:mode key

Methods

new  

Attributes

key  [RW] 
mods  [RW] 
string  [RW] 

Public Class methods

Create a new KeyDownEvent.

key:either an integer keysym (e.g. Rubygame::K_A) or string (e.g. “a”)
mods:array of modifier keysyms

[Source]

# File lib/rubygame/event.rb, line 206
                def initialize(key,mods)
                        if key.kind_of? Integer
                                @key = key
                                @string = Rubygame.key2str(key, mods) #a string or nil
                        elsif key.kind_of? String
                                @key = Rubygame::Key::ASCII2KEY[key]
                                if @key != nil
                                        @string = key
                                else
                                        raise(ArgumentError,"First argument of KeyDownEvent.new() must be an Integer KeySym (like K_A) or a ASCII-like String (like \"a\" or \"A\"). Got %s (%s)"%[key,key.class])
                                end
                        end
                        @mods = mods
                end

[Validate]