A general input handler which handles both mouse and keyboard input assigned to named actions. This allows you to define input handlers separately to defining keyboard/mouse configurations.

Constructors

  • Create a new instance of a Controller.

    Parameters

    • Optional element: Element

      Element to attach Controller to.

    • Optional options: {
          gamepads: GamePads;
          keyboard: Keyboard;
          mouse: Mouse;
      } = {}

      Optional arguments.

      • gamepads: GamePads

        A Gamepads object to use.

      • keyboard: Keyboard

        A Keyboard object to use.

      • mouse: Mouse

        A Mouse object to use.

    Returns Controller

    Example

    const c = new pc.Controller(document);

    // Register the "fire" action and assign it to both the Enter key and the space bar.
    c.registerKeys("fire", [pc.KEY_ENTER, pc.KEY_SPACE]);

Properties

_actions: {} = {}

Type declaration

    _axes: {} = {}

    Type declaration

      _axesValues: {} = {}

      Type declaration

        _element: Element = null
        _gamepads: GamePads
        _keyboard: Keyboard
        _mouse: Mouse

        Methods

        • Helper function to append an action.

          Parameters

          • action_name: string

            The name of the action.

          • action: {
                button: number;
                keys: number[];
                pad: number;
                type: "mouse" | "keyboard" | "gamepad";
            }

            An action object to add.

            • button: number

              Mouse: e.g. pc.MOUSEBUTTON_LEFT - Gamepad: e.g. pc.PAD_FACE_1

            • keys: number[]

              Keyboard: A list of keycodes e.g. [pc.KEY_A, pc.KEY_ENTER].

            • pad: number

              Gamepad: An index of the pad to register (use PAD_1, etc).

            • type: "mouse" | "keyboard" | "gamepad"

              The name of the action.

          Returns void

        • Attach Controller to an Element. This is required before you can monitor for key/mouse inputs.

          Parameters

          • element: Element

            The element to attach mouse and keyboard event handler too.

          Returns void

        • Returns true if the current action is enabled.

          Parameters

          • actionName: string

            The name of the action.

          Returns boolean

          True if the action is enabled.

        • Register an action against a controller axis.

          Parameters

          • Optional options: {
                pad: number;
            }

            Optional options object.

            • pad: number

              The index of the game pad to register for (use PAD_1, etc).

          Returns void

        • Create or update a action which is enabled when the supplied keys are pressed.

          Parameters

          • action: string

            The name of the action.

          • keys: number[]

            A list of keycodes.

          Returns void

        • Create or update an action which is enabled when the supplied mouse button is pressed.

          Parameters

          • action: string

            The name of the action.

          • button: number

            The mouse button.

          Returns void

        • Create or update an action which is enabled when the gamepad button is pressed.

          Parameters

          • action: string

            The name of the action.

          • pad: number

            The index of the pad to register (use PAD_1, etc).

          • button: number

            The pad button.

          Returns void

        • Returns true if the action was enabled this since the last update.

          Parameters

          • actionName: string

            The name of the action.

          Returns boolean

          True if the action was enabled this since the last update.