aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/gamepad_api/index.html
blob: e8f55730a34ea04496ac864cd1c0444361a8f87a (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
99
100
---
title: Gamepad API
slug: Web/API/Gamepad_API
tags:
  - 实验性
  - 手柄
  - 控制器
  - 概述
  - 游戏
translation_of: Web/API/Gamepad_API
---
<p>{{DefaultAPISidebar("Gamepad API")}}{{SeeCompatTable}}</p>

<p> </p>

<p><strong>Gamepad API</strong> 可以给予开发者一种简单、统一的方式来识别并响应游戏控制器(手柄)。其中包含了三个接口、两个事件、一个特殊函数,用来响应控制器的连接与断开、获取其他关于控制器的信息以及识别当前是哪个按键或是哪个控制器被按下了。</p>

<h2 id="接口">接口</h2>

<dl>
 <dt>{{domxref("Gamepad")}}</dt>
 <dd>表示已连接的游戏控制器。</dd>
 <dt>{{domxref("GamepadButton")}}</dt>
 <dd>表示已连接手柄上的一个按键。</dd>
 <dt>{{domxref("GamepadEvent")}}</dt>
 <dd>表示与控制器相关的事件的事件对象。</dd>
</dl>

<h3 id="实验性_Gamepad_扩展">实验性 Gamepad 扩展</h3>

<dl>
 <dt>{{domxref("GamepadHapticActuator")}}</dt>
 <dd>表示控制器中的硬件,用于向用户提供触觉反馈(如果可用)最常见的是振动硬件。</dd>
 <dt>{{domxref("GamepadPose")}}</dt>
 <dd>表示控制器的位置方向(例如, 在3D 空间中的位置和方向)于 <a href="/en-US/docs/Web/API/WebVR_API">WebVR</a> 控制器中。</dd>
</dl>

<p>另请参阅  <a href="/en-US/docs/Web/API/Gamepad#Experimental_extensions_to_Gamepad">Gamepad 接口扩展</a>,来获取上方的功能的相关信息。</p>

<h3 id="其他接口扩展">其他接口扩展</h3>

<h4 id="Navigator">Navigator</h4>

<dl>
 <dt>{{domxref("Navigator.getGamepads()")}}</dt>
 <dd>{{domxref("Navigator")}} 对象中的一个扩展。会返回一个 名为{{domxref("Gamepad")}} 的数组对象,其中每个数组元素对应一个已连接的控制器。</dd>
</dl>

<h4 id="Window_事件">Window 事件</h4>

<dl>
 <dt>{{domxref("Window.ongamepadconnected")}}</dt>
 <dd>表示当控制器连接时(当{{event('gamepadconnected')}} 事件触发时)运行的处理程序。</dd>
 <dt>{{domxref("Window.ongamepaddisconnected")}}</dt>
 <dd>表示当控制器断开连接时(当{{event('gamepaddisconnected')}} 事件触发时)运行的处理程序。</dd>
</dl>

<h2 id="教程与指南">教程与指南</h2>

<ul>
 <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API">使用 Gamepad API</a></li>
 <li><a href="/en-US/docs/Games/Techniques/Controls_Gamepad_API">使用 Gamepad API 实现控制</a></li>
</ul>

<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("GamepadExtensions")}}</td>
   <td>{{Spec2("GamepadExtensions")}}</td>
   <td>Defines the {{anch("Experimental Gamepad extensions")}}.</td>
  </tr>
  <tr>
   <td>{{SpecName("Gamepad", "", "The Gamepad API specification")}}</td>
   <td>{{Spec2("Gamepad")}}</td>
   <td>Initial definition</td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器兼容性">浏览器兼容性</h2>

<div class="hidden">
<p>The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
</div>

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

<h2 id="另请参阅">另请参阅</h2>

<ul>
 <li><a class="external text" href="https://hacks.mozilla.org/2013/12/the-gamepad-api/" rel="nofollow">The Gamepad API</a> by Ted Mielczarek and Robert Nyman</li>
 <li><a href="http://luser.github.io/gamepadtest/">简单的 API 演示页面</a> (<a href="https://github.com/luser/gamepadtest">源码</a>)</li>
</ul>