class Rubygame::EventTriggers::MouseMoveTrigger
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.
Public Class Methods
new( buttons=:any )
click to toggle source
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:
-
:any
. Matches if zero or more buttons are held. -
:none
. Matches when zero buttons are being held. -
:mouse_left
, etc. Matches when at least the given button is being held. -
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) )
# File lib/rubygame/event_triggers.rb, line 594 def initialize( buttons=:any ) @buttons = buttons end
Public Instance Methods
match?( event )
click to toggle source
Returns true if the given event matches this trigger. See new for information about how events match.
# 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