Gamepad
インターフェースの Gamepad.buttons
プロパティはデバイス上に存在するボタンを表すオブジェクトの配列を返します。
配列内の各エントリは、ボタンが押されていない場合は 0、ボタンが押されている場合は 0 以外の値 (通常は 1.0) です。各 {gamepadButton
オブジェクトには、pressed
と value
という 2 つのプロパティがあります :
pressed
プロパティはボタンが今押されているか (true
) または押されていないか (false
) を表す真偽値です。- The
value
プロパティは多くの最新のゲームパッドのトリガなど、アナログボタンの表示を有効にするために使用される浮動小数点値です。 値は 0.0 〜 1.0 の範囲で正規化され、0.0 は押されていないボタンを表し、1.0 は完全に押されたボタンを表します。
構文
readonly attribute GamepadButton[] buttons;
例
下記のコードは Gamepad API ボタンのデモから取得したものです。(デモのライブを見ることができ、Githubでソースコードを見つけることができます)。コードをフォークする際には以降に気をつけてください — Chrome では Navigator.getGamepads
は webkit
プレフィックスが必要で、ボタンの値は double 値の配列として格納されますが、Firefox はNavigator.getGamepads
ではプレフィックスが不要で、ボタンの値は GamepadButton
オブジェクトの配列に保存されます。GamepadButton.value
または GamepadButton.pressed
プロパティはボタンの種類に応じてアクセスする必要があります。この簡単なサンプルでは一方のみを許可しています。
function gameLoop() {
if(navigator.webkitGetGamepads) {
var gp = navigator.webkitGetGamepads()[0];
if(gp.buttons[0] == 1) {
b--;
} else if(gp.buttons[1] == 1) {
a++;
} else if(gp.buttons[2] == 1) {
b++;
} else if(gp.buttons[3] == 1) {
a--;
}
} else {
var gp = navigator.getGamepads()[0];
if(gp.buttons[0].value > 0 || gp.buttons[0].pressed == true) {
b--;
} else if(gp.buttons[1].value > 0 || gp.buttons[1].pressed == true) {
a++;
} else if(gp.buttons[2].value > 0 || gp.buttons[2].pressed == true) {
b++;
} else if(gp.buttons[3].value > 0 || gp.buttons[3].pressed == true) {
a--;
}
}
ball.style.left = a*2 + "px";
ball.style.top = b*2 + "px";
var start = rAF(gameLoop);
};
値
gamepadButton
オブジェクトの配列。
仕様
仕様 | 状態 | コメント |
---|---|---|
Gamepad Gamepad.buttons の定義 |
草案 | 初版 |
ブラウザの互換性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.