lib/metro/events/event_relay.rb
def on_mouse_movement(*args,&block)
      options = (args.last.is_a?(Hash) ? args.pop : {})
      @mouse_movement_actions << ( block || lambda { |instance| send(options[:do]) } )
    end
def on_mouse_movement(*args,&block)
      options = (args.last.is_a?(Hash) ? args.pop : {})
      @mouse_movement_actions << ( block || lambda { |instance| send(options[:do]) } )
    end
Register for mouse movements events. These events are fired each update
 providing an event which contains the current position of the mouse.

 @note mouse movement events fire with each update so it is up to the
    receiving object of the event to determine if the new mouse movement
    is a delta.

 @note mouse movement events require that the window be specified during initialization.

 @example Registering for button held events

     class ExampleScene

       draws :player

       event :on_mouse_movement do |event|
         player.position = event.mouse_point
       end
     end