# 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