问题标签 [gamepad-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
285 浏览

javascript - 用 Puppeteer 模拟游戏手柄?

我想编写一些基于 Puppeteer 的测试来测试一些使用Gamepad API的逻辑,但是我在Puppeteer 文档上找不到任何文档来解释如何模拟游戏手柄以及如何将按钮按下发送到浏览器。

正确的方法是什么?

0 投票
1 回答
164 浏览

javascript - 什么是游戏手柄 api 中的“onkeyup”?

我正在尝试使用游戏手柄 api。当一个按钮被按下时,它一直被“触发”,直到按钮被释放。这对于在游戏中跑步或射击之类的东西来说很酷,但是当我想在菜单中导航时(例如,向下移动 16 个菜单项而不是一个)时会出现问题。

在普通键盘上,我会使用 onkeyup/onkeydown 来查看按钮按下何时结束。但是在游戏手柄 api 上,我没有找到类似的东西。

JS:

那么,您是否知道一种让 gamepadPressCounter 每次按下而不是无限次的方法?

0 投票
1 回答
73 浏览

controller - 将 GPIO 按钮 (RaspberryPi) 映射到游戏手柄 (Gamepad API) 的方法

我有几个按钮连接到 GPIO 引脚的 RaspberryPi 4。我想将这些按钮映射为像游戏手柄一样可以通过浏览器的游戏手柄 API 访问。

后端(NodeJS,Python)有什么方法可以将这些原始输入映射到实际的游戏手柄输入(最好是从头开始,而不是使用某些库)我的游戏手柄 API 会将其识别为正确的控制器吗?

我发现很少有库和示例,但我想真正了解如何从头开始并且没有库。

0 投票
1 回答
50 浏览

c# - 使用 Unity 时缺少 ViGEm.NET 命名空间?

[这个问题有 unity3d 标签,我无法将其更改为 unity2d]
我试图通过教程使用 ViGEm 来帮助我。
但是在我写代码的时候,上面出现了一条红色的下划线,上面写着using Nefarius.ViGEm.Client;
The type or namespace 'Nefarius' could not be found. (are you missing a using directive or an assembly reference?)

如何使用 Unity 进行这项工作?我已经仔细完成了教程的每一步。

0 投票
1 回答
144 浏览

c# - 如何将 DirectInput (sharpDX) 设备映射到其对应的 HID (C#)

我需要的是一种找出 SharpDX.DirectInput DeviceInstance 的相应 HID 的方法。

我在 DirectInput 方面拥有的是:

在隐藏方面:

我可以看到 HID vendorId 和 ProductId 用于构建 DirectInput ProductId。问题是我有多个控制器连接到相同的 VendorId 和 ProductId(它们是同一个品牌)

有没有办法做到这一点?知道 DirectInput InstanceId 的 HID devicePath?

对于上下文:

我正在编写一个软件来为我的自定义街机机器在许多模拟器上自动配置许多控制器。模拟器使用 DirectInput/XInput/DSUClient ( https://github.com/v1993/cemuhook-protocol ) 的组合。因此,对于每个连接的控制器,我需要知道所有控制器信息才能正确配置每个模拟器上的每个控制器。

现在作为一个(非常糟糕的)解决方法,我正在监听与 HID 分离的 DirectInput 的输入,当读取发生时,我知道 HID 设备是 DirectInput 设备,因为它们(几乎)同时发生。

我已经用“ManagementObjectSearcher”尝试过“Win32_PnPEntity”但没有运气

0 投票
0 回答
127 浏览

ios - 如何在 iOS 中为 WKWebView 启用 GamePad 功能?

我查找了文档,但找不到 API。但是我已经测试了iOS版本的Chrome,没问题。我不知道如何启用它。谁能告诉我,非常感谢。

0 投票
1 回答
452 浏览

calibration - 如何在 Windows 10 中自定义游戏手柄控制器操纵杆输出灵敏度

我一直在广泛寻找一种方法来改变我的游戏手柄在 Windows 中的灵敏度。在大多数游戏中,操纵杆的灵敏度太高,所以除非我非常小心轻柔地按下操纵杆,否则它总是会发送最大输出,因此我的角色将始终全速移动。

我尝试使用AutoHotKey动态更改输出,但事实证明您需要一个特殊的驱动程序来更改输出。

然后我尝试使用 Windows Gamepad Calibration 菜单进行思考,但是 25 y/o 控制面板没有提供任何调整灵敏度的选项。

接下来我想到的是进入校准文件并手动更改值以降低灵敏度,但我能找到的只是这个参考文档,我试图在其中查看是否可以访问和更改与校准相关的注册表值,但是我什至在我的注册表中找不到“GameInput”文件夹。

具有供应商 ID (VID) VVVV、产品 ID (PID) PPPP、使用页面 UUUU 和使用 ID XXXX 的设备的映射将从注册表中的此位置读取:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\VVVVPPPPUUUUXXXX

你们有没有人找到解决这个问题的方法?我很惊讶我的搜索结果如此之少。

如果有必要,我会很乐意做一些AHK/Python/Powershell编码来解决这个问题。

提前致谢!

0 投票
1 回答
110 浏览

javascript - js Gamepad API 中的映射错误是否有修复?

我目前正在用香草 JS 构建一个小游戏,但是当我在控制器(底部的规格)上工作时,它错误地映射了按钮。它具有与游戏手柄 API 标准控制器相同数量的输入,以及所有相同的控件,但它不以无法播放的方式匹配。我使用另一个程序(在 API 文档中提供)来测试我的控件,当我发现它不起作用时,我写了这个小曲子:

有关不匹配控件的列表,请参见下表:

指数 应该是什么 什么
0 一个 力量
1 一个
2 X
3 是的 X
4 左保险杠 不适用
5 右保险杠 Y、左保险杠
6 左触发器 不适用
7 正确的触发器 不适用
8 选择 选择,右保险杠
9 开始 不适用
10 左摇杆按钮 不适用
11 右摇杆按钮 左摇杆按钮
12 dpad_up dpad_up
13 dpad_down dpad_down
14 dpad_left dpad_left
15 dpad_right dpad_right
16 力量 右摇杆按钮,开始

如果有人有任何类型的解决方法,我将不胜感激。

注意:我使用的是 M1 macbook pro(最新型号)、带蓝牙和耳机插孔的 Xbox One 控制器,以及 Replit 作为 Firefox 上的 IDE。我很高兴使用 JQuery,但除非绝对必要,否则我不想使用其他外部库(尽管请随意建议它们!)。

0 投票
1 回答
199 浏览

javascript - TamperMonkey:无法读取 null 的属性“dispatchEvent”

这里是 javascript 的新手,我在浏览时使用游戏手柄(使用游戏手柄 API 和 TamperMonkey)搞砸了,并且在模拟单击屏幕上的某个(x,y)坐标时遇到了麻烦。它报告“无法读取null的属性'dispatchEvent'”,即使我在click函数中控制台记录我的元素,它也会返回null。任何人都可以帮助澄清可能存在错误的地方吗?

0 投票
2 回答
80 浏览

javascript - 如何使用游戏手柄 api 检测一系列按钮按下

我正在尝试使用Gamepad API来检测一系列按钮或按键,例如 konami 代码。我发现一篇博客文章展示了如何检测游戏手柄何时连接,我可以做到这一点以及处理状态变化,但是在检测序列时我被卡住了。原因是没有“onKeyUp”类型的事件,如果按住按钮,它将每 1/60 秒发出一个事件(因为我使用的是 requestAnimationFrame)。我在博客之后做了一个 useGamepads 钩子,我有一个控制器组件,我试图在其中检测序列。