SpaceMouse Compact 无法在 Ubuntu 上的 Chrome 中使用 js Gamepad api

Posted

技术标签:

【中文标题】SpaceMouse Compact 无法在 Ubuntu 上的 Chrome 中使用 js Gamepad api【英文标题】:SpaceMouse Compact not working with js Gamepad api in Chrome on Ubuntu 【发布时间】:2021-11-27 11:14:23 【问题描述】:

正如标题所示,我在 Ubuntu 上的 Chrome 中使用 SpaceMouse 时遇到问题。在 Windows 10 上它工作正常。我已经尝试安装3DxWare 10 和spacenavd,但它仍然无法正常工作。 值得一提的是,鼠标在 Gazebo 上运行得非常好,所以它一定是 Chrome 的问题。 Chrome 中是否有一些标志或其他软件可以使 SpaceMouse 与 javascript 中的 Gamepad api 兼容?

【问题讨论】:

【参考方案1】:

简答:如果您的 SpaceMouse 无法在 Chrome for Linux 上使用 Gamepad API,请尝试 relabsd。

长答案:SpaceMouse 与游戏手柄足够接近,它有时可以工作,但有时不能。如果它能够工作就很好了,但让它在所有平台的 Gamepad API 中可靠地工作并非易事,而且这种努力最好花在支持真正的游戏手柄上。

对于这个特定问题,问题在于设备如何描述其输入。每个输入都有一个标志,指示输入是绝对的(具有定义的最小值和最大值)还是相对的(意味着每个输入必须与前一个值进行比较)。绝对输入用于操纵杆和触摸屏触摸点等事物,而相对输入用于光学鼠标和触控板移动等事物。

一些 SpaceMouse 设备将其轴输入描述为相对,一些描述为绝对。当它是绝对轴时,Chrome 可以获取边界信息并使用它将轴标准化为 Gamepad API 要求的范围 [-1,+1]。当它是相对轴时,边界信息不可用,并且无法可靠地对轴进行归一化。

SpaceMouse 轴的行为总是像绝对轴一样,当它们被定义为相对时,这是一个错误。有一个用于将 SpaceMouse 相对轴映射到绝对轴的第三方工具,我还没有测试过,但从描述中它听起来像你需要的那样:

https://github.com/nsensfel/relabsd

一些 SpaceMouse 设备(如 SpaceMouse Wireless)报告绝对坐标轴并使用 Gamepad API。

【讨论】:

谢谢!很抱歉等了这么久才将此标记为解决方案,但我正在处理我的应用程序的其他部分,而且我家里没有 SpaceMouse。现在一切都如我所愿

以上是关于SpaceMouse Compact 无法在 Ubuntu 上的 Chrome 中使用 js Gamepad api的主要内容,如果未能解决你的问题,请参考以下文章

无法备份 sql server compact 数据库

SQL Server Compact 错误:无法加载 DLL 'sqlceme35.dll'。指定的模块无法找到

无法让 sql server compact 3.5 / 4 与 ASP .NET MVC 2 一起使用

SQL CE 部署 - AppHarbor - 无法加载 SQL Server Compact 的本机组件

Compact Framework - System.Threading.Timer 在用户关闭屏幕时停止

在 Vista 客户端上安装后的 SQL Compact 问题