API Reference

Class List

GamePads

Extends: EventHandler

Input handler for accessing GamePad input.

Summary

Properties

current

The list of current gamepads.

gamepadsSupported

Whether gamepads are supported by this device.

Methods

findById

Find a connected GamePad from its identifier.

findByIndex

Find a connected GamePad from its device index.

getAxis

Get the value of one of the analog axes of the pad.

getMap

Retrieve the order for buttons and axes for given HTML5 Gamepad.

isPressed

Returns true if the button on the pad requested is pressed.

poll

Poll for the latest data from the gamepad API.

pulse

Make the gamepad vibrate.

pulseAll

Make all gamepads vibrate.

wasPressed

Returns true if the button was pressed since the last frame.

wasReleased

Returns true if the button was released since the last frame.

Events

gamepadconnected

Fired when a gamepad is connected.

gamepaddisconnected

Fired when a gamepad is disconnected.

Inherited

Methods

fire

Fire an event, all additional arguments are passed on to the event listener.

hasEvent

Test if there are any handlers bound to an event name.

off

Detach an event handler from an event.

on

Attach an event handler to an event.

once

Attach an event handler to an event.

Details

Constructor

GamePads()

Create a new GamePads instance.

Properties

GamePad[]current

The list of current gamepads.

booleangamepadsSupported

Whether gamepads are supported by this device.

Methods

findById(id)

Find a connected GamePad from its identifier.

Parameters

idstring

The identifier to search for.

Returns

GamePad, null

The GamePad with the matching identifier or null if no gamepad is found or the gamepad is not connected.

findByIndex(index)

Find a connected GamePad from its device index.

Parameters

indexnumber

The device index to search for.

Returns

GamePad, null

The GamePad with the matching device index or null if no gamepad is found or the gamepad is not connected.

getAxis(orderIndex, axis)

Get the value of one of the analog axes of the pad.

Parameters

orderIndexnumber

The index of the pad to check, use constants PAD_1, PAD_2, etc. For gamepad index call the function from the pad.

axisnumber

The axis to get the value of, use constants PAD_L_STICK_X, etc.

Returns

number

The value of the axis between -1 and 1.

getMap(pad)

Retrieve the order for buttons and axes for given HTML5 Gamepad.

Parameters

padGamepad

The HTML5 Gamepad object.

Returns

object

Object defining the order of buttons and axes for given HTML5 Gamepad.

isPressed(orderIndex, button)

Returns true if the button on the pad requested is pressed.

Parameters

orderIndexnumber

The order index of the pad to check, use constants PAD_1, PAD_2, etc. For gamepad index call the function from the pad.

buttonnumber

The button to test, use constants PAD_FACE_1, etc.

Returns

boolean

True if the button is pressed.

poll([pads])

Poll for the latest data from the gamepad API.

const gamepads = new pc.GamePads();
const pads = gamepads.poll();

Parameters

padsGamePad[]

An optional array used to receive the gamepads mapping. This array will be returned by this function.

Returns

GamePad[]

An array of gamepads and mappings for the model of gamepad that is attached.

pulse(orderIndex, intensity, duration, [options])

Make the gamepad vibrate.

Parameters

orderIndexnumber

The index of the pad to check, use constants PAD_1, PAD_2, etc. For gamepad index call the function from the pad.

intensitynumber

Intensity for the vibration in the range 0 to 1.

durationnumber

Duration for the vibration in milliseconds.

optionsobject

Options for special vibration pattern.

options.startDelaynumber

Delay before the pattern starts, in milliseconds. Defaults to 0.

options.strongMagnitudenumber

Intensity for strong actuators in the range 0 to 1. Defaults to intensity.

options.weakMagnitudenumber

Intensity for weak actuators in the range 0 to 1. Defaults to intensity.

Returns

Promise.

Return a Promise resulting in true if the pulse was successfully completed.

pulseAll(intensity, duration, [options])

Make all gamepads vibrate.

Parameters

intensitynumber

Intensity for the vibration in the range 0 to 1.

durationnumber

Duration for the vibration in milliseconds.

optionsobject

Options for special vibration pattern.

options.startDelaynumber

Delay before the pattern starts, in milliseconds. Defaults to 0.

options.strongMagnitudenumber

Intensity for strong actuators in the range 0 to 1. Defaults to intensity.

options.weakMagnitudenumber

Intensity for weak actuators in the range 0 to 1. Defaults to intensity.

Returns

Promise.>

Return a Promise resulting in an array of booleans defining if the pulse was successfully completed for every gamepads.

wasPressed(orderIndex, button)

Returns true if the button was pressed since the last frame.

Parameters

orderIndexnumber

The index of the pad to check, use constants PAD_1, PAD_2, etc. For gamepad index call the function from the pad.

buttonnumber

The button to test, use constants PAD_FACE_1, etc.

Returns

boolean

True if the button was pressed since the last frame.

wasReleased(orderIndex, button)

Returns true if the button was released since the last frame.

Parameters

orderIndexnumber

The index of the pad to check, use constants PAD_1, PAD_2, etc. For gamepad index call the function from the pad.

buttonnumber

The button to test, use constants PAD_FACE_1, etc.

Returns

boolean

True if the button was released since the last frame.

Events

gamepadconnected

Fired when a gamepad is connected.

const onPadConnected = function (pad) {
    if (!pad.mapping) {
        // Map the gamepad as the system could not find the proper map.
    } else {
        // Make the gamepad pulse.
    }
};
app.keyboard.on("gamepadconnected", onPadConnected, this);

Parameters

gamepadGamePad

The gamepad that was just connected.

gamepaddisconnected

Fired when a gamepad is disconnected.

const onPadDisconnected = function (pad) {
    // Pause the game.
};
app.keyboard.on("gamepaddisconnected", onPadDisconnected, this);

Parameters

gamepadGamePad

The gamepad that was just disconnected.

Inherited

Methods

fire(name, [arg1], [arg2], [arg3], [arg4], [arg5], [arg6], [arg7], [arg8])

Fire an event, all additional arguments are passed on to the event listener.

obj.fire('test', 'This is the message');

Parameters

namestring

Name of event to fire.

arg1*

First argument that is passed to the event handler.

arg2*

Second argument that is passed to the event handler.

arg3*

Third argument that is passed to the event handler.

arg4*

Fourth argument that is passed to the event handler.

arg5*

Fifth argument that is passed to the event handler.

arg6*

Sixth argument that is passed to the event handler.

arg7*

Seventh argument that is passed to the event handler.

arg8*

Eighth argument that is passed to the event handler.

Returns

EventHandler

Self for chaining.

hasEvent(name)

Test if there are any handlers bound to an event name.

obj.on('test', function () { }); // bind an event to 'test'
obj.hasEvent('test'); // returns true
obj.hasEvent('hello'); // returns false

Parameters

namestring

The name of the event to test.

Returns

boolean

True if the object has handlers bound to the specified event name.

off([name], [callback], [scope])

Detach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.

const handler = function () {
};
obj.on('test', handler);

obj.off(); // Removes all events
obj.off('test'); // Removes all events called 'test'
obj.off('test', handler); // Removes all handler functions, called 'test'
obj.off('test', handler, this); // Removes all handler functions, called 'test' with scope this

Parameters

namestring

Name of the event to unbind.

callbackHandleEventCallback

Function to be unbound.

scopeobject

Scope that was used as the this when the event is fired.

Returns

EventHandler

Self for chaining.

on(name, callback, [scope])

Attach an event handler to an event.

obj.on('test', function (a, b) {
    console.log(a + b);
});
obj.fire('test', 1, 2); // prints 3 to the console
const evt = obj.on('test', function (a, b) {
    console.log(a + b);
});
// some time later
evt.off();

Parameters

namestring

Name of the event to bind the callback to.

callbackHandleEventCallback

Function that is called when event is fired. Note the callback is limited to 8 arguments.

scopeobject

Object to use as 'this' when the event is fired, defaults to current this.

Returns

EventHandle

Can be used for removing event in the future.

once(name, callback, [scope])

Attach an event handler to an event. This handler will be removed after being fired once.

obj.once('test', function (a, b) {
    console.log(a + b);
});
obj.fire('test', 1, 2); // prints 3 to the console
obj.fire('test', 1, 2); // not going to get handled

Parameters

namestring

Name of the event to bind the callback to.

callbackHandleEventCallback

Function that is called when event is fired. Note the callback is limited to 8 arguments.

scopeobject

Object to use as 'this' when the event is fired, defaults to current this.

Returns

EventHandle
  • can be used for removing event in the future.