Gamepad: buttons-Eigenschaft

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 buttons-Eigenschaft des Gamepad-Interfaces gibt ein Array von gamepadButton-Objekten zurück, welche die auf dem Gerät vorhandenen Tasten repräsentieren.

Jeder Eintrag im Array ist 0, wenn die Taste nicht gedrückt ist, und ungleich null (typischerweise 1.0), wenn die Taste gedrückt ist.

Jedes gamepadButton-Objekt hat zwei Eigenschaften:

pressed

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

value

Ein Gleitkommawert, der zur Darstellung analoger Tasten verwendet wird, wie zum Beispiel den Triggern auf vielen modernen Gamepads. Die Werte sind normalisiert auf den Bereich von 0,0 bis 1,0, wobei 0,0 eine nicht gedrückte Taste und 1,0 eine vollständig gedrückte Taste repräsentiert.

Wert

Ein Array von gamepadButton-Objekten.

Beispiele

Abhängig vom Typ der Taste müssen wir auf die Eigenschaften GamepadButton.value oder GamepadButton.pressed zugreifen. Dieses Beispiel unterstützt beide:

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
# dom-gamepad-buttons

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch