GamepadButton

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 Nur lesbar

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

GamepadButton.touched Nur lesbar

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

GamepadButton.value Nur lesbar

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