首页 > web前端 > js教程 > GamePad API的真正游戏体验

GamePad API的真正游戏体验

尊渡假赌尊渡假赌尊渡假赌
发布: 2025-02-19 12:52:11
原创
953 人浏览过

GamePad API的真正游戏体验

钥匙要点

  • gamepad API是W3C的拟议标准,在浏览器之间提供了一个一致的API,用于连接游戏输入设备,例如Xbox Controller,以用于基于浏览器的体验的计算机。
  • >
  • gamepad API提供了灵活性,并提供了对具有归一化值的按钮和轴的访问权限,并且GamePad对象提供了有关连接的GamePad的制造商和型号的详细信息。
  • >
  • pxgamepad是一个辅助类,可提供更高级别的标准游戏板,例如Xbox One Controller,将按钮和轴索引映射到Xbox Controller上标记的熟悉名称。
  • > GamePad API能够通过自己的游戏板为多个玩家提供支持,但未来的改进可能会使用户可以在其游戏板上重新映射或自定义按钮功能,并且API为操纵和导航3D模型等非游戏场景提供了潜在的潜力。

本文是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

GamePad API的真正游戏体验gamepad API的智能设计有灵活性。在基本级别上,它提供了对按钮和轴的访问。按钮值范围为[0 .. 1],而轴范围为[-1 .. 1]。所有值都标准化为这些范围,因此开发人员可以期望设备之间的行为一致。 GamePad对象提供了有关连接游戏板制造商和模型的详细信息。更有用的是映射属性,描述了GamePad的一般类型。当前,唯一受支持的映射是标准标准,与许多流行游戏机(如Xbox)(例如Xbox>)使用的控制器布局。

标准控制器映射有两个棍子,每个棍子由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上标记的更熟悉的名称。

>我们将浏览库的一些有趣的部分,但是可以在此处提供完整的源代码(MIT许可证):https://github.com/thinkpixellab/pxgamepad

标准游戏板API提供按钮状态作为按钮数组。同样,该API设计用于灵活性,允许具有各种按钮计数的控制器。但是,在编写游戏时,使用标准映射按钮名称的编写和读取代码要容易得多。> 例如,使用HTML5 GamePad API,这是检查当前是否按下左触发器的代码:

> PXGAMEPAD类包含一种更新方法,该方法将收集所有标准映射按钮和轴的状态。因此,确定按下左边扳手是否与访问布尔属性一样简单:

>

标准GamePad API中的

轴也作为数值数组提供。例如,以下是获得左棒的归一化x和y值的代码:>

GamePad API的真正游戏体验d-pad是一种特殊情况,因为它考虑了HTML5 GamePad API的四个按钮(指数12、13、14和15)。但是,对于开发人员来说,允许DPAD与其中一根棍子相同的方式使用。 PXGAMEPAD为D-PAD提供了按钮信息,但也可以将轴信息进行整理,就好像D-pad是一个棒:

GamePad API的真正游戏体验 HTML5 GAMEPAD API的另一个限制是不提供按钮级别事件。游戏开发人员想要激活按钮按下的单个事件是很常见的。在Flight Arcade中,点火和制动按钮是一个很好的例子。 PXGAMEPAD手表按钮状态,并允许呼叫者在发布按钮上注册通知。>

这是由PXGAMEPAD支持的命名按钮的完整列表:GamePad API的真正游戏体验

a
  • b
  • x
  • y
  • >左图
  • RightTop
  • > leftTrigger
  • righttrigger
  • 选择
  • 开始
  • >左脚
  • > rightstick
  • dpadup
  • dpaddown
  • > dpadleft
  • dpadright
  • 获得当前的游戏板

有两种检索游戏板对象的方法。 GamePad API将方法添加到名为GetGamePads()的Navigator对象,该对象返回所有连接的游戏板的数组。每当新的GamePad连接或断开连接时,还会有新的GamePadconneconnecon和GamePaddisconstisconneconness事件。例如,这是PXGAMEPAD助手如何存储最后一个连接的GamePad:>

>这是使用navigator.getGamePads()API:检索第一个标准游戏板的助手

GamePad API的真正游戏体验> PXGAMEPAD助手类是针对单个用户使用标准映射游戏板的游戏设计的简单场景。最新的浏览器(例如Microsoft Edge)完全支持W3C GampePad API。但是,其他一些浏览器的较旧版本仅支持新兴规范的部分。 PXGAMEPAD聆听游戏板连接的事件,并在需要时回到查询所有GamePad的列表。

> GamePad的未来

GamePad API的真正游戏体验> PXGAMEPAD专注于简单,最常见的情况,但GamePad API完全有能力支持多个玩家,每个玩家都有自己的游戏板。 PXGAMEPAD的一种可能改进可能是提供一个经理风格的类,该类别跟踪多个游戏板的连接并将它们映射到游戏中的多个玩家。另一个可能是允许用户重新启动或自定义游戏板上的按钮函数。

>

>我们也对游戏手柄在非游戏场景中的潜力感到兴奋。随着WebGL的兴起,我们在网络上看到了3D的各种创新用途。这可能意味着用冰川工程探索3D珠穆朗玛峰地区。或归功于Cyark为保存重要的世界遗址和人工制品的努力而观看大英博物馆的集合。

>在开发飞行街机期间,我们经常使用搅拌机和其他3D工具来处理Babylon.js的模型。一些开发人员和艺术家使用称为3D鼠标的设备来帮助操纵和导航3D型号。这些设备跟踪单个旋钮穿过六个轴的运动!它们使操纵模型变得非常容易快捷。除游戏外,它们还用于从工程到医学成像的各种有趣的应用中。在为飞行街机上添加GamePad支持时,我们惊讶地发现GamePad API检测到了我们的3D空间,并为所有六个轴提供了移动数据!

>令人兴奋地想象新游戏板API提供的所有可能性。现在是尝试新的GamePad API并为您的下一个游戏或应用程序添加很多乐趣的好时机!

>

与JavaScript更多动手

Microsoft在许多开源JavaScript主题上拥有大量免费学习,我们的任务是使用Microsoft Edge创建更多的东西。这里有一些要退房:

2015年Microsoft Edge Web峰会(Microsoft Edge Web Summit)(新浏览器,新的Web平台功能和社区的嘉宾演讲者的期望完整系列)

>构建// build/and Windows 10(包括用于网站和应用的新JavaScript引擎)
    >
  • >不打破网络的javascript(克里斯蒂安·海尔曼(Christian Heilmann)最近的主题演讲)
  • 托管的Web应用程序和Web平台创新(对诸如歧管之类的主题的深入研究)
  • 实用的性能提示,使您的HTML/JavaScript更快(从响应式设计到休闲游戏再到性能优化的7部分系列)
  • >现代Web平台Jumpstart(HTML,CSS和JS的基本原理)
  • >
  • 和一些免费的工具要入门:Visual Studio代码,Azure试用和跨浏览器测试工具 - 所有这些都可用于Mac,Linux或Windows。
  • 本文是Microsoft的Web Dev技术系列的一部分。我们很高兴与您共享Microsoft Edge和新的EdgeHTML渲染引擎。在您的Mac,iOS,Android或Windows Device @ Modern.ie中获取免费的虚拟机或远程测试
  • 经常询问有关GamePad API
的问题

> GamePad API是什么?

GamePad API是一个基于Web的接口,允许开发人员访问和响应GamePad或Controller的信号。该API旨在与任何类型的游戏板一起使用,使其成为游戏开发人员的多功能工具。它提供了一种直接与GamePad互动的方法,而无需通过第三方软件或驱动程序。>

游戏板API如何工作?

gamePad API通过检测游戏板的输入并将其转换为游戏中的动作来工作。它通过聆听特定事件(例如按钮按下或操纵杆的动作)来实现此目的,然后触发游戏中相应的动作。这允许更具身临其境和互动的游戏体验。

>我如何在自己的游戏中使用GamePad API?

在您自己的游戏中使用GamePad API,您将需要包括它在您的游戏代码中。这涉及调用API的功能并聆听其生成的事件。然后,您可以使用这些事件来控制游戏的各个方面,例如字符运动或菜单导航。

>

>哪些类型的gamepads与gamepad api兼容?与各种游戏板兼容。这包括带有按钮和操纵杆的标准游戏手柄,以及更专业的控制器,例如转向轮或飞行棒。 API还可以一次处理多个游戏手柄,允许进行多人游戏。

我可以将GamePad API与其他API一起使用吗?创建更复杂的游戏。例如,您可以使用GamePad API来控制角色运动,而使用另一个API处理游戏物理或图形。

>

> gamepad API是所有浏览器支持的游戏板API吗?是基于Web的接口,并非所有浏览器当前都支持它。但是,大多数现代浏览器,包括Chrome,Firefox和Edge,都支持GamePad API。在开始开发之前,最好检查当前对API的浏览器支持。

>

>开发人员使用GamePad API时会面临哪些常见问题? GamePad API包括检测正确的游戏板,处理多个游戏板以及处理不同的按钮布局。这些问题通常可以通过仔细阅读API文档并彻底测试游戏来解决这些问题。

可以将GamePad API用于手机游戏吗?

,而GamePad API主要设计用于用于使用桌面浏览器,也可以用于手机游戏。但是,这需要一个与移动设备兼容的游戏板,并且用户体验可能不如桌面游戏那么光滑。

>

>如何测试GamePad API?可以通过将GamePad连接到计算机并运行使用API​​的游戏来测试GamePad API。然后,您可以在游戏板上按下按钮,看看是否在游戏中触发了相应的操作。

>

我在哪里可以了解有关GamePad API的更多信息?这包括官方的API文档,以及各种游戏开发网站上的教程和指南。您还可以找到使用API​​在行动中看到它的游戏示例。>

以上是GamePad API的真正游戏体验的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板