An on-screen joystick is based on multi-touch handling. Two structures contain descriptions of a single joystick button and an axis. The button is given an index and is specified by its color in the FColour
field of the sBitmapButton
structure. When a user taps the screen where the underlying pixel in the joystick mask has the color matching with one of the buttons, the clScreenJoystick
class sets the pressed flag for the button:
struct sBitmapButton { ivec4 FColour; int FIndex; };
The sBitmapAxis
structure represents a single stick of a joystick and contains two axes corresponding to vertical and horizontal directions. On the joystick mask bitmap, it is represented as a circular element centered at FPosition
with the radius FRadius
. The FAxis1
and FAxis2
indices specify which logical joystick axes are affected by this onscreen stick.
The FColour
field is used to determine whether the user is touching this axis:
struct sBitmapAxis { float FRadius; vec2...