blob: 33a7a2b46d2008453103f30bb496269e21d7eb5b (
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
|
---
title: Gamepad
slug: Web/API/Gamepad
translation_of: Web/API/Gamepad
---
<p>{{APIRef("Gamepad API")}}</p>
<p><a href="/zh-CN/docs/Web/API/Gamepad_API">Gamepad API</a> 的 <code>Gamepad</code> 接口,定义了一个独立的游戏手柄或其他控制器,允许访问控制器的信息,譬如按钮按下的状态、坐标输入的位置。游戏手柄或其他控制器,允许访问如按钮按下,和ID等信息。</p>
<p>Gamepad 对象有两种方式返回值:通过 {{event("gamepadconnected")}} 和 {{event("gamepaddisconnected")}} 事件的 <code>gamepad</code> 属性,或者在任意位置抓取 {{domxref("Navigator.getGamepads()")}} 方法返回的数组。</p>
<h2 id="属性">属性</h2>
<dl>
<dt>{{domxref("Gamepad.axes")}} {{readonlyInline}}</dt>
<dd>一个表示控制器设备上存在的坐标轴的数组 (比如控制器摇杆)。</dd>
<dt>{{domxref("Gamepad.buttons")}} {{readonlyInline}}</dt>
<dd>一个 {{domxref("gamepadButton")}} 对象的数组,表示设备上的按键的数组。</dd>
<dt>{{domxref("Gamepad.connected")}} {{readonlyInline}}</dt>
<dd>一个表示控制器是否仍然连接着系统的布尔值。</dd>
<dt>{{domxref("Gamepad.displayId")}} {{readonlyInline}}</dt>
<dd><dfn>返回与 {{domxref("VRDisplay")}} 相关的 {{domxref("VRDisplay.displayId")}} (如果有相关) — 控制器所控制的 <code>VRDisplay</code> 场景。</dfn></dd>
<dt>{{domxref("Gamepad.id")}} {{readonlyInline}}</dt>
<dd>一个包含着控制器标识信息的 {{domxref("DOMString")}}。</dd>
<dt>{{domxref("Gamepad.index")}} {{readonlyInline}}</dt>
<dd>一个自增的整形数字,对于当前连接到系统的每一个设备是唯一的。</dd>
<dt>{{domxref("Gamepad.mapping")}} {{readonlyInline}}</dt>
<dd>一个指示浏览器是否被映射到某个已知布局的字符串。</dd>
<dt>{{domxref("Gamepad.timestamp")}} {{readonlyInline}}</dt>
<dd>一个表示上次控制器数据更新时间的 {{domxref("DOMHighResTimeStamp")}} 。</dd>
<dd>
<h3 id="Gamepad_的实验性扩展">Gamepad 的实验性扩展</h3>
<p>以下接口被定义于 {{SpecName("GamepadExtensions")}} 规范中,且提供了诸如触觉反馈和WebVR控制器姿态方位信息等实验功能的访问。</p>
</dd>
<dt>{{domxref("Gamepad.hand")}} {{readonlyInline}}</dt>
<dd>一个枚举项,定义了控制器是用哪只手拿着的,或最可能是哪只手拿着的。</dd>
<dt>{{domxref("Gamepad.hapticActuators")}} {{readonlyInline}}</dt>
<dd>一个包含 {{domxref("GamepadHapticActuator")}} 对象的数组,其中表示控制器上可用的触觉反馈硬件。</dd>
<dt>{{domxref("Gamepad.pose")}} {{readonlyInline}}</dt>
<dd>一个表示WebVR控制器姿态方位信息的 {{domxref("GamepadPose")}} 对象(比如其在3D 空间中的位置和方向)。 </dd>
</dl>
<h2 id="示例">示例</h2>
<pre class="brush: js">window.addEventListener("gamepadconnected", function(e) {
console.log("控制器已连接与 %d 位: %s. %d 个按钮, %d 个坐标方向。",
e.gamepad.index, e.gamepad.id,
e.gamepad.buttons.length, e.gamepad.axes.length);
});</pre>
<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", "#gamepad-interface", "Gamepad")}}</td>
<td>{{Spec2("Gamepad")}}</td>
<td>Initial defintion</td>
</tr>
<tr>
<td>{{SpecName('WebVR 1.1', '#gamepad-getvrdisplays-attribute', 'displayId')}}</td>
<td>{{Spec2("WebVR 1.1")}}</td>
<td>Defines the {{domxref("Gamepad.displayId")}} property.</td>
</tr>
<tr>
<td>{{SpecName("GamepadExtensions", "#partial-gamepad-interface", "Gamepad extensions")}}</td>
<td>{{Spec2("GamepadExtensions")}}</td>
<td>Defines the <a href="#Gamepad_的实验性扩展">Experimental extensions to Gamepad</a></td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
<p>{{Compat}}</p>
<h2 id="另请参阅">另请参阅</h2>
<ul>
<li><a href="/zh-CN/docs/Web/Guide/API/Gamepad">使用Gamepad API</a></li>
<li><a href="/zh-CN/docs/Web/API/Gamepad_API">Gamepad API</a></li>
</ul>
|