This article was originally written by Gemberkoekje
The Input module handles generalized inputs (keyboard, mouse, joystick and touch).
Input events may be defined either in the config file or in code with
orxInput_Bind*() functions. They can be changed on the fly, of course, and you can create inputs than don't necessarily map to physical device by using the
orxINPUT_TYPE_EXTERNAL value of the enum.
It allows to group everything through the generic input system. Events can be bound to any input source: physical device, GUI “buttons” by activating the input using
This way, when going from one peripheral to the other, or when going to another platform, only the bindings need to be changed, the processing code itself doesn't change.
orxInput_SetValue() sets the value for one frame. Any value works. It all depends on what you expect when you read it. If mapped to a physical peripheral, buttons will set the value to 1 and joystick axes will set it to X with -1 ⇐ X ⇐ 1.
orxInput_SetPermanentValue() sets the value till someone sets it to something different.
Just to make an input set that does nothing and toggle between it and the other ones as necessary.