1

摘要:
我想说明两个或多个“XBox 360 控制器”之间的区别。

背景:
我正在使用 Javascript ( Typescript )为Gamepad API构建 GamepadManager 。GamepadManager 的主要功能是支持在使用特定游戏手柄按钮或轴时调用的回调。(GamepadManager 还使用控制器配置文件列表,专门为特定品牌和型号映射按钮和轴)


问题:
当物理游戏手柄重新连接时,SAME Javascript 游戏手柄对象是否可以重新链接/分配给最初断开的物理游戏手柄?
这可能实际上是自动发生的吗?更好的是,可以手动重新链接吗?

window.addEventListener("gamepaddisconnected", function(e) {
    var gp = e.gamepad;
    var isConnected = gp.connected;
});


场景:
当物理游戏手柄断开连接时,上述 EventListener 将返回一个事件,其中包含最初用于现在断开连接的物理游戏手柄的游戏手柄对象。事件的游戏手柄对象有一个布尔值来指定物理游戏手柄是否仍然连接......但当然它是断开的,因为它是从断开事件侦听器返回的。对我来说,这意味着游戏手柄对象可以在物理游戏手柄保持断开连接时持续使用,也许在再次重新连接时可以重用。

我在寻找什么:
我希望我的 GamepadManager 足够聪明,可以在断开连接之前将重新连接的物理游戏手柄链接到相同的游戏内可玩角色。
(这样,如果玩家正在使用一个特定的控制器,并且它被断开并重新连接,那么同一个控制器会被记住并且仍然会控制同一个角色)

此外,我希望即使所有 4 个物理游戏手柄都是相同品牌/型号的 Xbox 360 控制器,GamepadManager 也能够区分它们连接到的 USB 端口。

是否有一个特定的 ID/序列号,每个物理游戏手柄必须与其他相同品牌和型号的游戏手柄区分开来?还是 USB 端口是区分 2 个或更多匹配的物理游戏手柄的唯一方法?

或者:
有没有更好的方法来查看如何管理游戏的物理游戏手柄?(横向滚动动作沙盒)

4

0 回答 0