本文是Microsoft的Web Dev系列的一部分。感谢您支持使SitietPoint成为可能的合作伙伴。 网络上的游戏已经有了HTML5技术(例如Canvas,webGL和Webaudio)的很长一段路。现在可以在浏览器中产生高保真图形和声音。但是,要提供真正的游戏体验,您需要为游戏设计的输入设备。 GamePad API是W3C的建议标准,旨在在浏览器之间提供一致的API。 > GamePad API允许用户将Xbox Controller(例如Xbox Controller)等设备连接到计算机,并将其用于基于浏览器的体验!如果您有游戏板,请尝试将其插入计算机,然后按下按钮。您会在下面看到Xbox控制器,以镜像您制作的每个动作!
>在这里进行交互尝试。>
本教程是Flight Arcade系列中的第三个教程 - 构建,以演示Web平台以及新的Microsoft Edge浏览器和EdgeHTML渲染引擎中的可能性。您可以在FlightArcade.com上找到有关WebGL和Web API的前两篇文章,以及本文的交互式代码和示例。 [YouTube XYAQ9TPMXRA]灵活的API
。
标准控制器映射有两个棍子,每个棍子由2个轴(x和y)表示。它还包括一个D-pad,4个游戏按钮,顶部按钮和触发器:在GamePad API中均表示为按钮。
> 当前Xbox控制器报告按钮状态为0(正常状态)或1(按下)。但是,您可以想象将来的控制器可以报告每个按钮施加的力量。Xbox D-Pad还报告了离散值(0或1),但是棒可在整个轴范围内提供连续值[-1 .. 1]。这种额外的精度使我们更容易在我们的飞行街机任务中驾驶飞机。
>> pxgamepad
GamePad API提供的按钮和轴的数组是前瞻性思维,并且是低级API的完美思维。但是,在编写游戏时,很高兴能像Xbox One Controller这样的标准游戏手柄较高级别的代表。我们创建了一个名为PXGAMEPAD的帮助人类,该类将按钮和轴索引映射到Xbox Controller上标记的更熟悉的名称。标准游戏板API提供按钮状态作为按钮数组。同样,该API设计用于灵活性,允许具有各种按钮计数的控制器。但是,在编写游戏时,使用标准映射按钮名称的编写和读取代码要容易得多。
> PXGAMEPAD类包含一种更新方法,该方法将收集所有标准映射按钮和轴的状态。因此,确定按下左边扳手是否与访问布尔属性一样简单:
>
标准GamePad API中的轴也作为数值数组提供。例如,以下是获得左棒的归一化x和y值的代码:
:
>这是使用navigator.getGamePads()API: >
GamePad的未来 >
>令人兴奋地想象新游戏板API提供的所有可能性。现在是尝试新的GamePad API并为您的下一个游戏或应用程序添加很多乐趣的好时机! 与JavaScript更多动手
> GamePad API是什么? GamePad API是一个基于Web的接口,允许开发人员访问和响应GamePad或Controller的信号。该API旨在与任何类型的游戏板一起使用,使其成为游戏开发人员的多功能工具。它提供了一种直接与GamePad互动的方法,而无需通过第三方软件或驱动程序。> >哪些类型的gamepads与gamepad api兼容?与各种游戏板兼容。这包括带有按钮和操纵杆的标准游戏手柄,以及更专业的控制器,例如转向轮或飞行棒。 API还可以一次处理多个游戏手柄,允许进行多人游戏。 > gamepad API是所有浏览器支持的游戏板API吗?是基于Web的接口,并非所有浏览器当前都支持它。但是,大多数现代浏览器,包括Chrome,Firefox和Edge,都支持GamePad API。在开始开发之前,最好检查当前对API的浏览器支持。 可以将GamePad API用于手机游戏吗? >如何测试GamePad API?可以通过将GamePad连接到计算机并运行使用API的游戏来测试GamePad API。然后,您可以在游戏板上按下按钮,看看是否在游戏中触发了相应的操作。
HTML5 GAMEPAD API的另一个限制是不提供按钮级别事件。游戏开发人员想要激活按钮按下的单个事件是很常见的。在Flight Arcade中,点火和制动按钮是一个很好的例子。 PXGAMEPAD手表按钮状态,并允许呼叫者在发布按钮上注册通知。
有两种检索游戏板对象的方法。 GamePad API将方法添加到名为GetGamePads()的Navigator对象,该对象返回所有连接的游戏板的数组。每当新的GamePad连接或断开连接时,还会有新的GamePadconneconnecon和GamePaddisconstisconneconness事件。例如,这是PXGAMEPAD助手如何存储最后一个连接的GamePad:
> PXGAMEPAD助手类是针对单个用户使用标准映射游戏板的游戏设计的简单场景。最新的浏览器(例如Microsoft Edge)完全支持W3C GampePad API。但是,其他一些浏览器的较旧版本仅支持新兴规范的部分。 PXGAMEPAD聆听游戏板连接的事件,并在需要时回到查询所有GamePad的列表。
> PXGAMEPAD专注于简单,最常见的情况,但GamePad API完全有能力支持多个玩家,每个玩家都有自己的游戏板。 PXGAMEPAD的一种可能改进可能是提供一个经理风格的类,该类别跟踪多个游戏板的连接并将它们映射到游戏中的多个玩家。另一个可能是允许用户重新启动或自定义游戏板上的按钮函数。
>在开发飞行街机期间,我们经常使用搅拌机和其他3D工具来处理Babylon.js的模型。一些开发人员和艺术家使用称为3D鼠标的设备来帮助操纵和导航3D型号。这些设备跟踪单个旋钮穿过六个轴的运动!它们使操纵模型变得非常容易快捷。除游戏外,它们还用于从工程到医学成像的各种有趣的应用中。在为飞行街机上添加GamePad支持时,我们惊讶地发现GamePad API检测到了我们的3D空间,并为所有六个轴提供了移动数据!
2015年Microsoft Edge Web峰会(Microsoft Edge Web Summit)(新浏览器,新的Web平台功能和社区的嘉宾演讲者的期望完整系列)>
的问题
游戏板API如何工作?
gamePad API通过检测游戏板的输入并将其转换为游戏中的动作来工作。它通过聆听特定事件(例如按钮按下或操纵杆的动作)来实现此目的,然后触发游戏中相应的动作。这允许更具身临其境和互动的游戏体验。>我如何在自己的游戏中使用GamePad API?在您自己的游戏中使用GamePad API,您将需要包括它在您的游戏代码中。这涉及调用API的功能并聆听其生成的事件。然后,您可以使用这些事件来控制游戏的各个方面,例如字符运动或菜单导航。
>我可以将GamePad API与其他API一起使用吗?创建更复杂的游戏。例如,您可以使用GamePad API来控制角色运动,而使用另一个API处理游戏物理或图形。
>>开发人员使用GamePad API时会面临哪些常见问题? GamePad API包括检测正确的游戏板,处理多个游戏板以及处理不同的按钮布局。这些问题通常可以通过仔细阅读API文档并彻底测试游戏来解决这些问题。
,而GamePad API主要设计用于用于使用桌面浏览器,也可以用于手机游戏。但是,这需要一个与移动设备兼容的游戏板,并且用户体验可能不如桌面游戏那么光滑。
>我在哪里可以了解有关GamePad API的更多信息?这包括官方的API文档,以及各种游戏开发网站上的教程和指南。您还可以找到使用API在行动中看到它的游戏示例。
以上是GamePad API的真正游戏体验的详细内容。更多信息请关注PHP中文网其他相关文章!