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.

    • Constructor Detail

      • Touchpad

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

        public Touchpad​(float deadzoneRadius,
                        Skin skin,
                        java.lang.String styleName)
        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 Detail

      • 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:
        Touchable
      • 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.
      • 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.