Method: Ruby2D::Window#key_callback

Defined in:
lib/ruby2d/window.rb

#key_callback(type, key) ⇒ Object



138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/ruby2d/window.rb', line 138

def key_callback(type, key)
  # puts "===", "type: #{type}", "key: #{key}"

  key = key.downcase

  # All key events
  @events[:key].each do |id, e|
    e.call(KeyEvent.new(type, key))
  end

  case type
  # When key is pressed, fired once
  when :down
    @events[:key_down].each do |id, e|
      e.call(KeyEvent.new(type, key))
    end
  # When key is being held down, fired every frame
  when :held
    @events[:key_held].each do |id, e|
      e.call(KeyEvent.new(type, key))
    end
  # When key released, fired once
  when :up
    @events[:key_up].each do |id, e|
      e.call(KeyEvent.new(type, key))
    end
  end
end