zwangnj 2019-01-25
Gamepad API是一项相对较新的技术,它允许我们使用JavaScript访问连接游戏手柄的状态,这对于HTML5游戏开发者来说是个好消息。
许多游戏类型,如赛车和平台格斗游戏,都依靠游戏手柄而不是键盘和鼠标来获得最佳体验,这意味着现在可以使用用于控制台的相同游戏手柄在网络上播放这些游戏。
操作系统将其理解为XInput或DirectInput设备的任何游戏手柄都将与Gamepad API一起使用。让其他控制台控制器工作是可能的,但这需要硬件转换器或其他软件。
由于此Gamepad API相对较新且具有实验性,因此目前并不是都浏览器都支持,相反还是有很多功能支持有限,W3C有些文档仍然处在草案阶段。
然而,浏览器实现Gamepad API接口率超已过50%,其中包括所有主流浏览器。该API甚至可以进入移动浏览器世界,比如之前的Chrome for Android是第一款支持它的移动浏览器。
开发之前我们可以简单使用此代码段检查浏览器是否支持Gamepad API:if(!!navigator.getGamepads){// Browser supports the Gamepad AP } 。
检查完所有设备与浏览器之后之后我们可以通过其官网查看文档开发接入游戏手柄过程,经过我们多次的尝试开发与结果与所有其他人实验技术一样,Gamepad API的结果也不稳定。但是,通过使用它为未来提高更好的游戏体验是每个开发者的期盼(开发文档可以在GitHub上找到)。
这为游戏行业带来了巨大的机遇,许多游戏已经使用像NW.js这样的前端技术来创建本机应用程序将它们与Gamepad API相结合将使游戏具有接近原生的体验。然而,这只是快速增长的游戏平台的一个要素,Web技术现在能够实现我们在本机游戏中看到的许多功能,包括音频处理(通过Web Audio API),没有屏幕限制的鼠标移动输入(通过Pointer Lock API),触摸手势(通过Touch事件API)等等还有很多新功能,我们期待官网的更新新技术。
在未来,我希望Gamepad API能够访更多的内置功能,内置扬声器,麦克风和其他输入之类的东西。
目前很多开发者都是免费提供自己的时间要为Gamepad API的未来做出贡献,希望有一天能更完美的Gamepad API。