Class Rubygame::EventTriggers::MouseMoveTrigger
In: lib/rubygame/event_triggers.rb
Parent: Object

MouseMoveTrigger is an event trigger which fires when the mouse cursor is moved (MouseMoved). If buttons are given, it only matches events with those buttons. See new for details.

Methods

match?   new  

Public Class methods

Create a new instance of MouseMoveTrigger.

The buttons parameter determines which mouse buttons can be held down and still match this trigger. It can be one of:

  1. :any. Matches if zero or more buttons are held.
  2. :none. Matches when zero buttons are being held.
  3. :mouse_left, etc. Matches when at least the given button is being held.
  4. An array of :mouse_* symbols. Matches when exactly all buttons in the Array are being held, and nothing else.

Example:

   # Matches all MouseMoved events, regardless of buttons:
   MouseMoveTrigger.new()
   MouseMoveTrigger.new( :any )

   # Matches only if no buttons pressed:
   MouseMoveTrigger.new( :none )
   MouseMoveTrigger.new( [] )

   # Matches if left mouse is held down, maybe with others:
   MouseMoveTrigger.new( :mouse_left )

   # Matches if ONLY left mouse held down, nothing else:
   MouseMoveTrigger.new( [:mouse_left] )

   # Matches if BOTH left AND right mouse are held down, nothing else:
   MouseMoveTrigger.new( [:mouse_left, :mouse_right] )

   # Matches if EITHER left OR right mouse are held down:
   OrTrigger.new( MouseMoveTrigger.new(:mouse_left),
                  MouseMoveTrigger.new(:mouse_right) )

[Source]

# File lib/rubygame/event_triggers.rb, line 594
        def initialize( buttons=:any )
                @buttons = buttons
        end

Public Instance methods

Returns true if the given event matches this trigger. See new for information about how events match.

[Source]

# File lib/rubygame/event_triggers.rb, line 602
        def match?( event )
                if event.kind_of?( Rubygame::Events::MouseMoved )
                        ((@buttons == :any) or 
                         (@buttons == :none and event.buttons == []) or 
                         (_buttons_match?(event.buttons)) or
                         (event.buttons.include?(@buttons)))
                else
                        false
                end
        end

[Validate]