Class: GamepadPlugin

Phaser.Input.Gamepad. GamepadPlugin

The Gamepad Plugin is an input plugin that belongs to the Scene-owned Input system.

Its role is to listen for native DOM Gamepad Events and then process them.

You do not need to create this class directly, the Input system will create an instance of it automatically.

You can access it from within a Scene using this.input.gamepad.

To listen for a gamepad being connected:

this.input.gamepad.once('connected', function (pad) {
    //   'pad' is a reference to the gamepad that was just connected
});

Note that the browser may require you to press a button on a gamepad before it will allow you to access it,
this is for security reasons. However, it may also trust the page already, in which case you won't get the
'connected' event and instead should check GamepadPlugin.total to see if it thinks there are any gamepads
already connected.

Once you have received the connected event, or polled the gamepads and found them enabled, you can access
them via the built-in properties GamepadPlugin.pad1 to pad4, for up to 4 game pads. With a reference
to the gamepads you can poll its buttons and axis sticks. See the properties and methods available on
the Gamepad class for more details.

For more information about Gamepad support in browsers see the following resources:

https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API
https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API
https://www.smashingmagazine.com/2015/11/gamepad-api-in-web-games/
http://html5gamepad.com/


new GamepadPlugin(sceneInputPlugin)

Parameters:
Name Type Description
sceneInputPlugin Phaser.Input.InputPlugin

A reference to the Scene Input Plugin that the KeyboardPlugin belongs to.

Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 20)

Extends

Members


enabled :boolean

A boolean that controls if the Gamepad Manager is enabled or not.
Can be toggled on the fly.

Type:
  • boolean
Since: 3.10.0
Default Value:
  • true
Source: src/input/gamepad/GamepadPlugin.js (Line 100)

gamepads :Array.<Phaser.Input.Gamepad.Gamepad>

An array of the connected Gamepads.

Type:
Since: 3.10.0
Default Value:
  • []
Source: src/input/gamepad/GamepadPlugin.js (Line 121)

pad1 :Phaser.Input.Gamepad.Gamepad

A reference to the first connected Gamepad.

This will be undefined if either no pads are connected, or the browser
has not yet issued a gamepadconnect, which can happen even if a Gamepad
is plugged in, but hasn't yet had any buttons pressed on it.

Type:
Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 545)

pad2 :Phaser.Input.Gamepad.Gamepad

A reference to the second connected Gamepad.

This will be undefined if either no pads are connected, or the browser
has not yet issued a gamepadconnect, which can happen even if a Gamepad
is plugged in, but hasn't yet had any buttons pressed on it.

Type:
Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 565)

pad3 :Phaser.Input.Gamepad.Gamepad

A reference to the third connected Gamepad.

This will be undefined if either no pads are connected, or the browser
has not yet issued a gamepadconnect, which can happen even if a Gamepad
is plugged in, but hasn't yet had any buttons pressed on it.

Type:
Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 585)

pad4 :Phaser.Input.Gamepad.Gamepad

A reference to the fourth connected Gamepad.

This will be undefined if either no pads are connected, or the browser
has not yet issued a gamepadconnect, which can happen even if a Gamepad
is plugged in, but hasn't yet had any buttons pressed on it.

Type:
Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 605)

scene :Phaser.Scene

A reference to the Scene that this Input Plugin is responsible for.

Type:
Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 73)

sceneInputPlugin :Phaser.Input.InputPlugin

A reference to the Scene Input Plugin that created this Keyboard Plugin.

Type:
Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 91)

settings :Phaser.Scenes.Settings.Object

A reference to the Scene Systems Settings.

Type:
Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 82)

target :any

The Gamepad Event target, as defined in the Game Config.
Typically the browser window, but can be any interactive DOM element.

Type:
  • any
Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 111)

total :integer

The total number of connected game pads.

Type:
  • integer
Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 529)

Methods


addListener(event, fn [, context])

Add a listener for a given event.

Parameters:
Name Type Argument Default Description
event string | symbol

The event name.

fn function

The listener function.

context * <optional>
this

The context to invoke the listener with.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 111)
Returns:

this.

Type
Phaser.Events.EventEmitter

disconnectAll()

Disconnects all current Gamepads.

Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 304)

emit(event [, args])

Calls each of the listeners registered for a given event.

Parameters:
Name Type Argument Description
event string | symbol

The event name.

args * <optional>
<repeatable>

Additional arguments that will be passed to the event handler.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 86)
Returns:

true if the event had listeners, else false.

Type
boolean

eventNames()

Return an array listing the events for which the emitter has registered listeners.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 55)
Returns:
Type
array

getAll()

Returns an array of all currently connected Gamepads.

Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 394)
Returns:

An array of all currently connected Gamepads.

Type
Array.<Phaser.Input.Gamepad.Gamepad>

getPad(index)

Looks-up a single Gamepad based on the given index value.

Parameters:
Name Type Description
index number

The index of the Gamepad to get.

Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 418)
Returns:

The Gamepad matching the given index, or undefined if none were found.

Type
Phaser.Input.Gamepad.Gamepad

isActive()

Checks to see if both this plugin and the Scene to which it belongs is active.

Since: 3.10.0
Source: src/input/gamepad/GamepadPlugin.js (Line 234)
Returns:

true if the plugin and the Scene it belongs to is active.

Type
boolean

listenerCount(event)

Return the number of listeners listening to a given event.

Parameters:
Name Type Description
event string | symbol

The event name.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 75)
Returns:

The number of listeners.

Type
number

listeners(event)

Return the listeners registered for a given event.

Parameters:
Name Type Description
event string | symbol

The event name.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 64)
Returns:

The registered listeners.

Type
array

off(event, fn, context, once)

Remove the listeners of a given event.

Parameters:
Name Type Description
event string | symbol

The event name.

fn function

Only remove the listeners that match this function.

context *

Only remove the listeners that have this context.

once boolean

Only remove one-time listeners.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 151)
Returns:

this.

Type
Phaser.Events.EventEmitter

on(event, fn [, context])

Add a listener for a given event.

Parameters:
Name Type Argument Default Description
event string | symbol

The event name.

fn function

The listener function.

context * <optional>
this

The context to invoke the listener with.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 98)
Returns:

this.

Type
Phaser.Events.EventEmitter

once(event, fn [, context])

Add a one-time listener for a given event.

Parameters:
Name Type Argument Default Description
event string | symbol

The event name.

fn function

The listener function.

context * <optional>
this

The context to invoke the listener with.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 124)
Returns:

this.

Type
Phaser.Events.EventEmitter

removeAllListeners( [event])

Remove all listeners, or those of the specified event.

Parameters:
Name Type Argument Description
event string | symbol <optional>

The event name.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 165)
Returns:

this.

Type
Phaser.Events.EventEmitter

removeListener(event, fn, context, once)

Remove the listeners of a given event.

Parameters:
Name Type Description
event string | symbol

The event name.

fn function

Only remove the listeners that match this function.

context *

Only remove the listeners that have this context.

once boolean

Only remove one-time listeners.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 137)
Returns:

this.

Type
Phaser.Events.EventEmitter