Class | Rubygame::Events::JoystickHatMoved |
In: |
lib/rubygame/events/joystick_events.rb
|
Parent: | Object |
JoystickHatMoved is an event that occurs when a joystick‘s hat switch has changed direction.
A joystick hat switch is a round switch that can be pressed in 8 possible directions: up, down, left, right, or the four diagonal directions. (Some hat switches support extra diagonal directions, but only those 8 directions are supported by Rubygame.)
direction | [R] | |
hat | [R] | |
horizontal | [R] | |
joystick_id | [R] | |
vertical | [R] |
Creates a new JoystickHatMoved instance.
joystick_id: | an integer identifying which joystick changed. The first joystick is 0. |
hat: | an integer identifying which hat switch changed. The first hat switch on each joystick is 0. |
direction: | a symbol telling the direction the hat switch is being pressed. The
direction is either nil or one of these 8 symbols:
:up :up_right :right :down_right :down :down_left :left :up_left |
# File lib/rubygame/events/joystick_events.rb, line 285 def initialize( joystick_id, hat, direction ) unless joystick_id.kind_of?(Fixnum) and joystick_id >= 0 raise ArgumentError, "joystick_id must be an integer >= 0" end @joystick_id = joystick_id unless hat.kind_of?(Fixnum) and hat >= 0 raise ArgumentError, "hat must be an integer >= 0" end @hat = hat unless @@direction_map.keys.include? direction raise ArgumentError, "invalid direction '%s'. "%[direction.inspect] +\ "Check the docs for valid directions." end @direction = direction @horizontal, @vertical = @@direction_map[direction] end
True if the hat is in the center (not pressed in any direction).
# File lib/rubygame/events/joystick_events.rb, line 314 def center? @direction == nil end
True if the hat is pressed down, down-right, or down-left.
# File lib/rubygame/events/joystick_events.rb, line 335 def down? @vertical == 1 end
True if the hat is pressed left, up-left, or down-left.
# File lib/rubygame/events/joystick_events.rb, line 320 def left? @horizontal == -1 end