Class Touchpad

All Implemented Interfaces:
Layout

public class Touchpad extends Widget
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.

Author:
Josh Street
  • Constructor Details

    • 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

    • setStyle

      public void setStyle(Touchpad.TouchpadStyle style)
    • getStyle

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

      public Actor hit(float x, float y, boolean touchable)
      Description copied from class: Actor
      Returns the deepest visible (and optionally, touchable) actor that contains the specified point, 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 and this actor is visible.

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

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

      public void draw(Batch batch, float parentAlpha)
      Description copied from class: Widget
      If this method is overridden, the super method or Widget.validate() should be called to ensure the widget is laid out.
      Overrides:
      draw in class Widget
      parentAlpha - The parent alpha, to be multiplied with this actor's alpha, allowing the parent's alpha to affect all children.
    • getPrefWidth

      public float getPrefWidth()
      Specified by:
      getPrefWidth in interface Layout
      Overrides:
      getPrefWidth in class Widget
    • getPrefHeight

      public float getPrefHeight()
      Specified by:
      getPrefHeight in interface Layout
      Overrides:
      getPrefHeight in class Widget
    • 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.