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

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
从网站到应用程序:JavaScript的不同应用从网站到应用程序:JavaScript的不同应用Apr 22, 2025 am 12:02 AM

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python vs. JavaScript:比较用例和应用程序Python vs. JavaScript:比较用例和应用程序Apr 21, 2025 am 12:01 AM

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C/C在JavaScript口译员和编译器中的作用C/C在JavaScript口译员和编译器中的作用Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在行动中:现实世界中的示例和项目JavaScript在行动中:现实世界中的示例和项目Apr 19, 2025 am 12:13 AM

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript和Web:核心功能和用例JavaScript和Web:核心功能和用例Apr 18, 2025 am 12:19 AM

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

了解JavaScript引擎:实施详细信息了解JavaScript引擎:实施详细信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python vs. JavaScript:学习曲线和易用性Python vs. JavaScript:学习曲线和易用性Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python vs. JavaScript:社区,图书馆和资源Python vs. JavaScript:社区,图书馆和资源Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中