作为一名热情的《龙与地下城》玩家和技术爱好者,我决定通过创建一个带有嵌入式屏幕的定制咖啡桌来提升我的游戏设置。该桌子显示地图、代币、播放音效,甚至为玩家展示艺术品。所有这一切都通过一个名为 Foundry VTT 的强大平台运行,该平台与 Roll20 类似,但具有更好的定价模型和广泛的开放模块系统。它非常适合定制您的桌面体验。
在探索增强设置的方法时,我注意到允许流平台与 Foundry 集成的模块。这些工具提供对宏和命令的快速访问,使游戏更加流畅。然而,在看到流甲板的价格(200 欧元!)后,我还没有准备好进行这项投资。
然后我想起一件事——几年前,我建造了一台街机。虽然机器早已被拆除,但我仍然保留着项目中的按钮和控制板。凭借一点创造力和 3D 打印机,我通过打印一个带有按钮插槽的小盒子来制作自己的定制“流甲板”。
现在我已经准备好了硬件,但将其与 Foundry VTT 集成是一个挑战。我想在浏览器中使用 Gamepad API 来注册我的按钮按下操作,但令我震惊的是 API 处理输入的方式缺乏灵活性。默认方法是使用 while(true) 循环不断轮询每个按钮的按下状态。虽然这在使用 requestAnimationFrame 的游戏循环中工作得很好,但就我的目的而言,它感觉效率低下,坦率地说,很愚蠢。我想简单地用事件监听器响应按钮按下,而不是不断地无限循环地检查游戏手柄状态。
这促使我创建了今天分享的游戏手柄 SDK。
使用此 SDK,我允许开发人员直接添加按钮按下、释放和轴更改的事件侦听器,从而简化了流程 - 无需轮询。它还支持连接和断开游戏手柄,从而可以轻松与 Foundry VTT 等平台或任何基于浏览器的项目集成。
通过使用此 SDK,任何人都可以将其自定义控制器连接到基于浏览器的应用程序,而无需手动检查游戏手柄状态的麻烦。对于我的 D&D 桌子,这意味着我现在可以无缝地使用我的临时流平台来控制游戏中的宏、动作等 - 这一切都归功于几个按钮和一些代码。
如果您有兴趣,请查看 SDK,如果您想解决类似问题,请随时与我们联系!
Github:https://github.com/RamonGebben/Gamepad-SDK
NPM:https://www.npmjs.com/package/@pindakaasman/gamepad-sdk
以上是为我的 D&D 表构建自定义 Stream Deck:使用自定义 SDK 解决游戏手柄集成问题的详细内容。更多信息请关注PHP中文网其他相关文章!