Package arc.scene.ui

Class Touchpad

java.lang.Object
arc.scene.Element
arc.scene.ui.Touchpad

public class Touchpad extends Element
An on-screen joystick. The movement area of the joystick is circular, centered on the touchpad, and its size determined by the smaller touchpad dimension.

The preferred size of the touchpad is determined by the background.

ChangeListener.ChangeEvent is fired when the touchpad knob is moved. Cancelling the event will move the knob to where it was previously.

  • Constructor Details

    • Touchpad

      public Touchpad(float deadzoneRadius)
      Parameters:
      deadzoneRadius - The distance in pixels from the center of the touchpad required for the knob to be moved.
    • Touchpad

      public Touchpad(float deadzoneRadius, Touchpad.TouchpadStyle style)
      Parameters:
      deadzoneRadius - The distance in pixels from the center of the touchpad required for the knob to be moved.
  • Method Details

    • getStyle

      public Touchpad.TouchpadStyle getStyle()
      Returns the touchpad's style. Modifying the returned style may not have an effect until setStyle(TouchpadStyle) is called.
    • setStyle

      public void setStyle(Touchpad.TouchpadStyle style)
    • hit

      public Element hit(float x, float y, boolean touchable)
      Description copied from class: Element
      Returns the deepest actor that contains the specified point and is touchable and visible, or null if no actor was hit. The point is specified in the actor's local coordinate system (0,0 is the bottom left of the actor and width,height is the upper right).

      This method is used to delegate touchDown, mouse, and enter/exit events. If this method returns null, those events will not occur on this Actor.

      The default implementation returns this actor if the point is within this actor's bounds.

      Overrides:
      hit in class Element
      touchable - If true, the hit detection will respect the touchability.
      See Also:
    • layout

      public void layout()
      Description copied from class: Element
      Computes and caches any information needed for drawing and, if this actor has children, positions and sizes each child, calls Element.invalidate() on any each child whose width or height has changed, and calls Element.validate() on each child. This method should almost never be called directly, instead Element.validate() should be used.
      Overrides:
      layout in class Element
    • draw

      public void draw()
      Description copied from class: Element
      Draws the element. Does nothing by default.
      Overrides:
      draw in class Element
    • getPrefWidth

      public float getPrefWidth()
      Overrides:
      getPrefWidth in class Element
    • getPrefHeight

      public float getPrefHeight()
      Overrides:
      getPrefHeight in class Element
    • isTouched

      public boolean isTouched()
    • getResetOnTouchUp

      public boolean getResetOnTouchUp()
    • setResetOnTouchUp

      public void setResetOnTouchUp(boolean reset)
      Parameters:
      reset - Whether to reset the knob to the center on touch up.
    • setDeadzone

      public void setDeadzone(float deadzoneRadius)
      Parameters:
      deadzoneRadius - The distance in pixels from the center of the touchpad required for the knob to be moved.
    • getKnobX

      public float getKnobX()
      Returns the x-position of the knob relative to the center of the widget. The positive direction is right.
    • getKnobY

      public float getKnobY()
      Returns the y-position of the knob relative to the center of the widget. The positive direction is up.
    • getKnobPercentX

      public float getKnobPercentX()
      Returns the x-position of the knob as a percentage from the center of the touchpad to the edge of the circular movement area. The positive direction is right.
    • getKnobPercentY

      public float getKnobPercentY()
      Returns the y-position of the knob as a percentage from the center of the touchpad to the edge of the circular movement area. The positive direction is up.