====== Joystick inputs ====== Orx supports up to 16 joysticks or gamepad devices. ===== Joystick buttons ===== Here's the list of the available joystick buttons for the input config system (**replace the ''*'' with the ID of the joystick you want to use, a number between 1 and 16**): * JOY_1_''*'' * JOY_2_''*'' * JOY_3_''*'' * JOY_4_''*'' * JOY_5_''*'' * JOY_6_''*'' * JOY_7_''*'' * JOY_8_''*'' * JOY_9_''*'' * JOY_10_''*'' * JOY_11_''*'' * JOY_12_''*'' * JOY_13_''*'' * JOY_14_''*'' * JOY_15_''*'' * JOY_16_''*'' There are also special re-mapped named buttons to suit just about every controller: * JOY_A_* * JOY_B_* * JOY_X_* * JOY_Y_* * JOY_LBUMPER_* * JOY_RBUMPER_* * JOY_BACK_* * JOY_START_* * JOY_GUIDE_* * JOY_LTHUMB_* * JOY_RTHUMB_* * JOY_UP_* * JOY_RIGHT_* * JOY_DOWN_* * JOY_LEFT_* ===== Joystick axes ===== Here's the list of the available joystick axes for the input config system (**replace the ''*'' with the ID of the joystick you want to use, a number between 1 and 16**): * JOY_LX_''*'' * JOY_LY_''*'' * JOY_RX_''*'' * JOY_RY_''*'' Each is a axis. For example: JOY_LX_1 is the left/right of the left analog stick on controller 1, while JOY_LY_1 is the up/down axis of the same stick on controller 1. {{ tutorials:input:xbox-one-mapping.jpg |}} {{ tutorials:input:logitech-mapping.jpg |}} JOY_RX_1 and JOY_RY_1 will be the left/right, up/down of the right stick on controller 1. Each controller will implement its layout differently. But Orx makes use of the [[https://github.com/gabomdq/SDL_GameControllerDB|SDL_GameControllerDB community database]] internally to make the mapping consistent for all controllers playing your game To allow the user to customise mapping, it is helpful to consider providing [[en:tutorials:input:remapping_inputs|remapping in your game]]. ===== Triggers ===== Triggers are technically an axis as well. They are read as a range of values rather than on/off like a button. These are available on newer console controllers like the Xbox 360 or PS4: * JOY_LTRIGGER_* * JOY_RTRIGGER_* ===== Joystick half-axes ===== Here's the list of the available joystick half axes for the input config system which allow you to easily use the axis like an [[en:tutorials:input:8way_joystick_control|8-way old school joystick]] (**replace the ''*'' with the ID of the joystick you want to use, a number between 1 and 16**): * +JOY_LX_''*'' (Binds the left joystick's positive X half-axis to an input) * -JOY_LX_''*'' (Binds the left joystick's negative X half-axis to an input) * +JOY_LY_''*'' (Binds the left joystick's positive Y half-axis to an input) * -JOY_LY_''*'' (Binds the left joystick's negative Y half-axis to an input) * +JOY_RX_''*'' (Binds the right joystick's positive X half-axis to an input) * -JOY_RX_''*'' (Binds the right joystick's negative X half-axis to an input) * +JOY_RY_''*'' (Binds the right joystick's positive Y half-axis to an input) * -JOY_RY_''*'' (Binds the right joystick's negative Y half-axis to an input)