aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/gamepad/buttons/index.html
blob: d335b132b6186c92cc56cff37d1a56f7706fc588 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
---
title: Gamepad.buttons
slug: Web/API/Gamepad/buttons
tags:
  - API
  - Gamepad API
  - Games
  - NeedsBetterSpecLink
  - NeedsMarkupWork
  - Property
  - Reference
  - Référence(2)
translation_of: Web/API/Gamepad/buttons
---
<p>{{APIRef("Gamepad API")}}</p>

<p>{{domxref("Gamepad") }} インターフェースの <code><strong>Gamepad.buttons</strong></code> プロパティは<span class="tlid-translation translation"><span title="">デバイス上に存在するボタンを表すオブジェクトの配列を返します。</span></span></p>

<p><span class="tlid-translation translation"><span title="">配列内の各エントリは、ボタンが押されていない場合は 0、ボタンが押されている場合は 0 以外の値 (通常は 1.0) です。</span><span title="">各 {</span></span>{{domxref("gamepadButton")}}<span class="tlid-translation translation"><span title=""> オブジェクトには、</span></span><code>pressed</code><span class="tlid-translation translation"><span title=""> と </span></span><code>value</code><span class="tlid-translation translation"><span title=""> という 2 つのプロパティがあります </span></span>:</p>

<ul>
 <li><code>pressed</code> プロパティはボタンが今押されているか (<code>true</code>) または押されていないか (<code>false</code>) を表す真偽値です。</li>
 <li>The <code>value</code> プロパティは<span class="tlid-translation translation"><span title="">多くの最新のゲームパッドのトリガなど、アナログボタンの表示を有効にするために使用される浮動小数点値です。</span> <span title="">値は 0.0 〜 1.0 の範囲で正規化され、0.0 は押されていないボタンを表し、1.0 は完全に押されたボタンを表します。</span></span></li>
</ul>

<h2 id="構文">構文</h2>

<pre class="syntaxbox">readonly    attribute GamepadButton[]     buttons;</pre>

<h2 id="例"></h2>

<p>下記のコードは Gamepad API ボタンのデモから取得したものです。(<a href="http://chrisdavidmills.github.io/gamepad-buttons/">デモのライブを見ること</a><span class="tlid-translation translation"><span title="">ができ、Githubで</span></span><a href="https://github.com/chrisdavidmills/gamepad-buttons/tree/master">ソースコードを見つける</a><span class="tlid-translation translation"><span title="">ことができます)。</span></span>コードをフォークする際には以降に気をつけてください — Chrome では {{domxref("Navigator.getGamepads")}}<code>webkit</code> プレフィックスが必要で、ボタンの値は double 値の配列として格納されますが、Firefox は{{domxref("Navigator.getGamepads")}} ではプレフィックスが不要で、ボタンの値は {{domxref("GamepadButton")}} オブジェクトの配列に保存されます。{{domxref("GamepadButton.value")}} または {{domxref("GamepadButton.pressed")}} プロパティはボタンの種類に応じてアクセスする必要があります。この簡単なサンプルでは一方のみを許可しています。</p>

<pre class="brush: js">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 &gt; 0 || gp.buttons[0].pressed == true) {
      b--;
    } else if(gp.buttons[1].value &gt; 0 || gp.buttons[1].pressed == true) {
      a++;
    } else if(gp.buttons[2].value &gt; 0 || gp.buttons[2].pressed == true) {
      b++;
    } else if(gp.buttons[3].value &gt; 0 || gp.buttons[3].pressed == true) {
      a--;
    }
  }

  ball.style.left = a*2 + "px";
  ball.style.top = b*2 + "px";

  var start = rAF(gameLoop);
};</pre>

<h2 id="値"></h2>

<p>{{domxref("gamepadButton")}} オブジェクトの配列。</p>

<h2 id="仕様">仕様</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">仕様</th>
   <th scope="col">状態</th>
   <th scope="col">コメント</th>
  </tr>
  <tr>
   <td>{{SpecName("Gamepad", "#widl-Gamepad-buttons", "Gamepad.buttons")}}</td>
   <td>{{Spec2("Gamepad")}}</td>
   <td>初版</td>
  </tr>
 </tbody>
</table>

<h2 id="ブラウザの互換性">ブラウザの互換性</h2>



<p>{{Compat("api.Gamepad.buttons")}}</p>

<div id="compat-mobile"> </div>

<h2 id="参照">参照</h2>

<p><a href="/ja/docs/Web/Guide/API/Gamepad">Gamepad API を利用する</a></p>