| Path: | lib/rubygame/string.rb |
| Last Update: | Sat Jul 22 13:37:38 -0500 2006 |
class String
# (This is a work in progress. It does not yet work.)
#
# Modified version of String.===() to match keydown events
# example: the string, "ctrl+alt+delete" should matche
# KeyDownEvent.new(K_DELETE,[K_LCTRL,K_LALT])
# so you can case() on a keypress event, like this:
#
# case(ev)
# when "w"; player.go_up();
# when "a"; player.go_left();
# when "s"; player.go_down();
# when "d"; player.go_right();
# end
def ===(event)
if [Rubygame::KeyDownEvent, Rubygame::KeyUpEvent].include? event.class
# parse self
all_mods = {
Rubygame::K_LALT=>['alt','lalt','left_alt'],
Rubygame::K_RALT=>['alt','ralt','right_alt'],
Rubygame::K_LCTRL=>['ctrl','control','lctrl','lcontrol', # 'left_ctrl','left_control'],
Rubygame::K_RCTRL=>['ctrl','control','rctrl','rcontrol', # 'right_ctrl','right_control'],
Rubygame::K_LSHIFT=>['shift','lshift','left_shift'],
Rubygame::K_RSHIFT=>['shift','rshift','right_shift'],
}