Class TouchControls
java.lang.Object
com.codename1.gaming.TouchControls
On-screen controls for touch devices: an optional analog VirtualJoystick plus
any number of VirtualButtons. The framework draws them over the game and routes
touches into the view's GameInput, so a touch game reads input exactly like a
keyboard game -- GameInput#isGameKeyDown(int), GameInput#isKeyDown(int) and
the joystick's analog GameInput#getAxisX() / getAxisY() all work whether the
player is on a phone or a desktop.
Get the instance from GameView#getControls() and add the controls you want,
placing them in the view's pixel coordinates (origin at the top left):
int fire = Display.getInstance().getKeyCode(Display.GAME_FIRE);
getControls().addJoystick(140, getHeight() - 140, 90);
getControls().addButton(fire, getWidth() - 120, getHeight() - 120, 55).setLabel("A");
Multi-touch is supported, so the player can steer with the stick and press a button at the same time.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intVertical anchor: pin to the bottom safe-area edge.static final intHorizontal/vertical anchor: center on the safe area.static final intHorizontal anchor: pin to the left safe-area edge.static final intHorizontal anchor: pin to the right safe-area edge.static final intVertical anchor: pin to the top safe-area edge. -
Method Summary
Modifier and TypeMethodDescriptionaddButton(int keyCode, float centerX, float centerY, float radius) Adds a button mapped to the given key code.addButton(int keyCode, float radius, int hAlign, int vAlign, float margin) Adds a button anchored to a corner of the view's safe area (see#addJoystick(float, int, int, float)), so it stays inside the safe area and follows rotation automatically.addJoystick(float centerX, float centerY, float radius) Adds (or replaces) the analog joystick at the given center and radius.addJoystick(float radius, int hAlign, int vAlign, float margin) Adds (or replaces) the analog joystick anchored to a corner of the view's safe area, so it stays clear of notches and home indicators and follows rotation automatically (the framework repositions it; you never recompute coordinates).booleanvoidsetVisible(boolean visible) Whether the controls are drawn and active.
-
Field Details
-
LEFT
public static final int LEFTHorizontal anchor: pin to the left safe-area edge.- See Also:
-
CENTER
public static final int CENTERHorizontal/vertical anchor: center on the safe area.- See Also:
-
RIGHT
public static final int RIGHTHorizontal anchor: pin to the right safe-area edge.- See Also:
-
TOP
public static final int TOPVertical anchor: pin to the top safe-area edge.- See Also:
-
BOTTOM
public static final int BOTTOMVertical anchor: pin to the bottom safe-area edge.- See Also:
-
-
Method Details
-
addJoystick
Adds (or replaces) the analog joystick at the given center and radius. Returns it so you can tune the dead zone etc. -
addJoystick
Adds (or replaces) the analog joystick anchored to a corner of the view's safe area, so it stays clear of notches and home indicators and follows rotation automatically (the framework repositions it; you never recompute coordinates).hAlignis one of#LEFT/#CENTER/#RIGHT,vAlignone of#TOP/#CENTER/#BOTTOM, andmarginis the gap from the safe-area edges. -
addButton
Adds a button mapped to the given key code. Usecom.codename1.ui.Display#getKeyCode(int)to map a game action. -
addButton
Adds a button anchored to a corner of the view's safe area (see#addJoystick(float, int, int, float)), so it stays inside the safe area and follows rotation automatically. -
setVisible
public void setVisible(boolean visible) Whether the controls are drawn and active. Hide them on platforms with a real keyboard if you prefer. -
isVisible
public boolean isVisible() -
getJoystick
-