GamepadButton

This translation is incomplete. Please help translate this article from English

La interfaz GamepadButton define un botón individual de un gamepad u otro control, dando acceso al estado actual de diferentes tipos de botones disponibles en el dispositivo de control.

Un objeto GamepadButton se devuelve al solicitar cualquier valor del array devuelto por la propiedad buttons de la interfaz Gamepad.

Nota: Este es el caso en Firefox Gecko 28 en adelante; Chrome y versiones anteriores de Firefox continúan devolviendo un array de valores dobles cuando se accede a esta propiedad.

Propiedades

GamepadButton.value Read only
Un valor doble usado para representar el estado actual de botones análogos, así como los gatillos de muchos gamepads modernos. Los valores se normalizan al rango 0.0 —1.0, donde 0.0 representa un botón que no está presionado, y 1.0 representa un botón que está completamente presionado.
GamepadButton.pressed Read only
Un valor Boolean que indica el estado el botón, ya sea que actualmente se encuentre presionado (true) o sin presionar (false).

Ejemplo

El siguiente código se toma de mi demostración del botón del API de Gamepad (puedes ver el demo en vivo, y encontrar el código fuente en Github.) Nota que el código — en Chrome Navigator.getGamepads necesita un prefijo webkit y los valores del botón serán guardados como un array de valores dobles, mientras qe en Firefox Navigator.getGamepads no se necesita un prefijo, y los valores de los botones se guardan como un array de objetos GamepadButton; estas son las propiedades GamepadButton.valueGamepadButton.pressed a las que necesitamos acceder, dependiendo de qué tipo de botones haya. En este simple ejemplo yo solo he permitido estos.

function gameLoop() {
  if(navigator.webkitGetGamepads) {
    var gp = navigator.webkitGetGamepads()[0];

    if(gp.buttons[0] == 1) {
      b--;
    } else if(gp.buttons[1] == 1) {
      a++;
    } else if(gp.buttons[2] == 1) {
      b++;
    } else if(gp.buttons[3] == 1) {
      a--;
    }
  } else {
    var gp = navigator.getGamepads()[0];

    if(gp.buttons[0].value > 0 || gp.buttons[0].pressed == true) {
      b--;
    } else if(gp.buttons[1].value > 0 || gp.buttons[1].pressed == true) {
      a++;
    } else if(gp.buttons[2].value > 0 || gp.buttons[2].pressed == true) {
      b++;
    } else if(gp.buttons[3].value > 0 || gp.buttons[3].pressed == true) {
      a--;
    }
  }

  ball.style.left = a*2 + "px";
  ball.style.top = b*2 + "px";

  var start = rAF(gameLoop);
};

Especificaciones

Specification Status Comment
Gamepad
La definición de 'GamepadButton' en esta especificación.
Working Draft Definición inicial

Compatibilidad de Navegadores

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
GamepadButtonChrome Soporte completo 35
Soporte completo 35
Sin soporte 21 — 34
Prefijado
Prefijado Requiere de un prefijo de vendedor : webkit
Edge Soporte completo 12Firefox Soporte completo 29
Soporte completo 29
Sin soporte 24 — 28
Deshabilitado
Deshabilitado From version 24 until version 28 (exclusive): this feature is behind the dom.gamepad.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 22
Soporte completo 22
Sin soporte 15 — 21
Prefijado
Prefijado Requiere de un prefijo de vendedor : webkit
Safari Soporte completo 10.1WebView Android Sin soporte NoChrome Android Soporte completo SiFirefox Android Soporte completo 32Opera Android Soporte completo 22
Soporte completo 22
Sin soporte 14 — 21
Prefijado
Prefijado Requiere de un prefijo de vendedor : webkit
Safari iOS Soporte completo 10.3Samsung Internet Android Soporte completo Si
pressedChrome Soporte completo 35
Soporte completo 35
Sin soporte 21 — 34
Prefijado
Prefijado Requiere de un prefijo de vendedor : webkit
Edge Soporte completo 12Firefox Soporte completo 29
Soporte completo 29
Sin soporte 24 — 28
Deshabilitado
Deshabilitado From version 24 until version 28 (exclusive): this feature is behind the dom.gamepad.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 22
Soporte completo 22
Sin soporte 15 — 21
Prefijado
Prefijado Requiere de un prefijo de vendedor : webkit
Safari Soporte completo 10.1WebView Android Sin soporte NoChrome Android Soporte completo SiFirefox Android Soporte completo 32Opera Android Soporte completo 22
Soporte completo 22
Sin soporte 14 — 21
Prefijado
Prefijado Requiere de un prefijo de vendedor : webkit
Safari iOS Soporte completo 10.3Samsung Internet Android Soporte completo Si
touchedChrome Soporte completo SiEdge Soporte completo 15Firefox Soporte completo SiIE Sin soporte NoOpera ? Safari Soporte completo 10.1WebView Android Sin soporte NoChrome Android Soporte completo SiFirefox Android Soporte completo SiOpera Android Sin soporte NoSafari iOS Soporte completo 10.3Samsung Internet Android Soporte completo Si
valueChrome Soporte completo 35
Soporte completo 35
Sin soporte 21 — 34
Prefijado
Prefijado Requiere de un prefijo de vendedor : webkit
Edge Soporte completo 12Firefox Soporte completo 29
Soporte completo 29
Sin soporte 24 — 28
Deshabilitado
Deshabilitado From version 24 until version 28 (exclusive): this feature is behind the dom.gamepad.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 22
Soporte completo 22
Sin soporte 15 — 21
Prefijado
Prefijado Requiere de un prefijo de vendedor : webkit
Safari Soporte completo 10.1WebView Android Sin soporte NoChrome Android Soporte completo SiFirefox Android Soporte completo 32Opera Android Soporte completo 22
Soporte completo 22
Sin soporte 14 — 21
Prefijado
Prefijado Requiere de un prefijo de vendedor : webkit
Safari iOS Soporte completo 10.3Samsung Internet Android Soporte completo Si

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibilidad desconocida  
Compatibilidad desconocida
El usuario debe de habilitar explícitamente esta característica.
El usuario debe de habilitar explícitamente esta característica.
Requiere de un prefijo de proveedor o un de nombre diferente para su uso.
Requiere de un prefijo de proveedor o un de nombre diferente para su uso.

Recomendado

Usando la API de Gamepad