GamepadButton

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die GamepadButton-Schnittstelle definiert einen einzelnen Knopf eines Gamepads oder eines anderen Controllers und ermöglicht den Zugriff auf den aktuellen Zustand verschiedener Arten von Knöpfen, die auf dem Steuergerät verfügbar sind.

Ein GamepadButton-Objekt wird zurückgegeben, indem ein beliebiger Wert des Arrays abgefragt wird, das von der buttons-Eigenschaft der Gamepad-Schnittstelle geliefert wird.

Instanz-Eigenschaften

GamepadButton.pressed Schreibgeschützt

Ein boolescher Wert, der angibt, ob der Knopf derzeit gedrückt (true) oder nicht gedrückt (false) ist.

GamepadButton.touched Schreibgeschützt

Ein boolescher Wert, der angibt, ob der Knopf derzeit berührt (true) oder nicht berührt (false) ist.

GamepadButton.value Schreibgeschützt

Ein Doppelwert, der verwendet wird, um den aktuellen Zustand von analogen Knöpfen darzustellen, wie zum Beispiel die Trigger auf vielen modernen Gamepads. Die Werte sind normalisiert im Bereich von 0,0 bis 1,0, wobei 0,0 einen nicht gedrückten Knopf und 1,0 einen vollständig gedrückten Knopf darstellt.

Beispiel

Die Knopfwerte im folgenden Beispiel werden als ein Array von GamepadButton-Objekten gespeichert. Dieses einfache Beispiel überprüft, ob der GamepadButton.value eines Knopfes größer als 0 ist oder ob die GamepadButton.pressed-Eigenschaft anzeigt, dass der Knopf gedrückt wurde.

js
function gameLoop() {
  const gp = navigator.getGamepads()[0];

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

  ball.style.left = `${a * 2}px`; // ball is a UI widget
  ball.style.top = `${b * 2}px`;

  requestAnimationFrame(gameLoop);
}

Spezifikationen

Specification
Gamepad
# gamepadbutton-interface

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch