# BlitzMax/Modules/User input/Joystick

The BlitzMax freejoy module contains commands that report the status of any joysticks and game controllers connected to the system.

# Functions
## JoyCount

Function JoyCount
Description: Counts the number of joysticks.
Returns: The number of joysticks and gamecontrollers connected to the system.
Example:

## JoyButtonCaps

Function JoyButtonCaps(port)
Description: Available buttons (on/off controls) on a joystick.
Returns: A bitfield representing which buttons are present.

## JoyAxisCaps

Function JoyAxisCaps(port)
Description: Available axis (proportional controls) on a joystick.
Returns: A bitfield representing which axis are available.
Information: The bit positions of the returned value correspond to the following constants defined in the FreeJoy module:
      * Const JOY_X=0
      * Const JOY_Y=1
      * Const JOY_Z=2
      * Const JOY_R=3
      * Const JOY_U=4
      * Const JOY_V=5
      * Const JOY_YAW=6
      * Const JOY_PITCH=7
      * Const JOY_ROLL=8
      * Const JOY_HAT=9
      * Const JOY_WHEEL=10

## JoyName

Function JoyName$(port)
Description: Get the name of the joysticks connected to the specified port.
Returns: The system name of the joystick.

## JoyDown

Function JoyDown( button,port=0 )
Description: Test the status of a joystick button.
Returns: True if the button is pressed.

## JoyHit

Function JoyHit( button,port=0 )
Description: Check for a joystick button press
Returns: Number of times button has been hit.
Information: The returned value represents the number of the times button has been hit since the last call to JoyHit with the same specified button.

## JoyX

Function JoyX#( port=0 )
Description: Reports the horizontal position of the joystick.
Returns: Zero if the joystick is centered, -1 if Left, 1 if Right or a value in between.

## JoyY

Function JoyY#( port=0 )
Description: Reports the vertical position of the joystick.
Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value in between.

## JoyZ

Function JoyZ#( port=0 )
Description: Reports the position of the joystick's Z axis if supported.
Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value in between.

## JoyR

Function JoyR#( port=0 )
Description: Reports the position of the joystick's R axis if supported.
Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value in between.

## JoyU

Function JoyU#( port=0 )
Description: Reports the position of the joystick's U axis if supported.
Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value in between.
Information: The U value of a joystick usually corresponds to a joystick's 'slider' or 'throttle' feature, although this may vary depending on the joystick, and will not be available with all joysticks.

## JoyV

Function JoyV#( port=0 )
Description: Reports the position of the joystick's V axis if supported.
Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value in between.
Information: The V value of a joystick usually corresponds to a joystick's 'slider' or 'throttle' feature, although this may vary depending on the joystick, and will not be available with all joysticks.

## JoyYaw

Function JoyYaw#( port=0 )
Description: Reports the position of the joystick's YAW axis if supported.
Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value in between.

## JoyPitch

Function JoyPitch#( port=0 )
Description: Reports the position of the joystick's PITCH axis if supported.
Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value in between.

## JoyRoll

Function JoyRoll#( port=0 )
Description: Reports the position of the joystick's ROLL axis if supported.
Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value in between.

## JoyHat

Function JoyHat#( port=0 )
Description: Reports the position of the joystick's HAT controller if supported.
Returns: -1.0 if the joystick is centered, and values between 0.0, 0.25, 0.5 and 0.75 for the directions Up, Right, Down, Left respectively.

## JoyWheel

Function JoyWheel#( port=0 )
Description: Reports the position of the joystick's WHEEL controller if supported.
Returns: Zero if the joystick is centered, -1.0 if Left, 1.0 if Right or a value in between.

## FlushJoy

Function FlushJoy( port_mask=~0 )
Description: Flush joystick button states.