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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
buttons

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch