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:
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