使用游戏手柄和鼠标锁定 API 为 Web 上的开放游戏铺平道路

在这篇文章中,我将介绍游戏手柄和鼠标锁定 API,这两个新增功能将为 Firefox 带来高质量的 Web 游戏。

更新:游戏手柄 API、鼠标锁定 API 和全屏 API 现在都可以在 Firefox 的一个实验性版本 中使用。

事实证明,Web 是一个有价值且功能强大的游戏平台,特别是那些使用浏览器内置的开放技术制作的游戏。这些 HTML 和 JavaScript 游戏开始崭露头角,这都要归功于 Firefox 和其他现代浏览器提供的惊人 API 和功能。

游戏手柄和鼠标锁定 API 只是即将添加到 Firefox 的众多新功能中的两个,这些功能将有助于完善此平台。我们将在这些功能开发过程中发布更多信息,但今天让我们快速了解一下它们。

使用游戏手柄 API 摆脱键盘的束缚

使用游戏手柄控制游戏的能力,直到今天,一直是游戏主机和桌面电脑游戏的专属功能。您现在可以通过 USB 或蓝牙将游戏手柄连接到您的电脑,并立即在 Firefox 中使用 JavaScript 访问它,这真是太酷了。

对于想要摆脱传统键盘和鼠标输入的游戏开发者来说,使用 JavaScript 访问游戏手柄具有巨大的价值。结合 全屏 API,它可以让您创造出更具沉浸感的体验,感觉更像是游戏主机而不是浏览器。

Mozilla 的 Ted Mielczarek 和我们 Paladin 团队的其他成员 正在开发游戏手柄 API。

立即使用

您现在可以在 Firefox 的自定义版本 中使用游戏手柄 API,该版本还包含鼠标锁定 API(下面将详细介绍)。安装完该版本后,您可以 使用演示文件 进行测试。维基页面包含有关 在您自己的项目中实现 API 的信息。

我制作了一个简短的视频,展示了使用 Xbox 360 手柄的游戏手柄 API 的实际操作。

更多信息

游戏手柄 API 具有由 Google 的 Scott Graham 和我们自己的 Ted Mielczarek 编辑的 W3C 草案规范。在 Mozilla 维基上了解有关 我们对游戏手柄 API 的开发进度 的更多信息。

使用鼠标锁定 API 控制鼠标行为

直到最近,锁定鼠标光标并将移动限制在浏览器内都是不可能的。这使得开发者难以实现允许玩家在一个大型或 3D 世界中环顾四周的游戏和可视化效果。发生的情况是,玩家开始环顾四周,但在鼠标移出浏览器边缘或碰到显示器侧面时,将无法继续环顾四周。

鼠标锁定 API 通过隐藏光标并将其锁定到屏幕中心来解决此问题。启用 API 并移动鼠标时,开发者会获得有关鼠标移动距离的信息,而不是屏幕上鼠标的坐标。这些距离值允许在 X 轴和 Y 轴上无限移动,让玩家可以在 3D 世界中环顾四周,而不会遇到任何限制。

Mozilla 的 David Humphrey 和他在加拿大 Seneca 学院的学生 正在开发此功能。

立即使用

您现在可以在与包含游戏手柄 API 的 Firefox 的相同自定义版本 中使用鼠标锁定 API。安装完该版本后,您可以 使用演示文件 进行测试。

David 还制作了一个简短的视频,展示了鼠标锁定 API 的实际操作。

更多信息

鼠标锁定 API 具有由 Google 的 Vincent Scheib 编辑的 W3C 草案规范。在 Bugzilla 上了解有关 我们对鼠标锁定 API 的开发进度 的更多信息。您还可以查看 David Humphrey 关于 鼠标锁定 API 开发 的系列文章。

关于 Robin Hawkes

Robin 热衷于通过代码解决问题。他是一位数字爱好者,Pusher 的开发者关系负责人,前 Mozilla 布道师,书籍作者,也是一位英国人。

更多 Robin Hawkes 的文章…


10 条评论

  1. Andrei Eichler

    是否可以使鼠标锁定适用于基于触摸的设备,或将其与 Xbox 手柄的摇杆关联?

    2011 年 12 月 1 日 10:17

  2. Jon Buckley

    鼠标锁定当然可以与笔记本电脑上的触摸板等触控板指向设备配合使用,但不能与其他基于触摸的设备配合使用。我不确定您所说的将其与 Xbox 手柄的摇杆关联是什么意思,但您可以将鼠标锁定 API 和游戏手柄 API 结合使用,以实现分屏多人游戏或其他同样酷炫的功能!

    2011 年 12 月 8 日 14:44

  3. John Hammink

    嘿,Rob!不错的文章 - 我正计划转载它,但发现指向实验性版本的链接已失效。这些功能是否已合并到 nightly 版本中?

    2011 年 12 月 11 日 17:17

    1. Rob Hawkes

      感谢您指出失效的链接,FF 版本链接已过期,我已添加指向最新版本的更永久的链接。

      这些功能尚未合并到主 Nightly 分支中,但我认为很快就会合并。

      2011 年 12 月 12 日 13:43

  4. John Hammink

    这是我运行演示时得到的结果

    在 Mac OSX 10.7.2 和 Ubuntu 11.10 上的 try-build 上测试

    Mozilla 的全屏 API:在 Mac OSX 上工作;在 Linux 上不工作

    跨浏览器全屏 API:两者均工作。

    游戏手柄 API:在 Linux 和 Mac 上均未对我起作用 注意:我们只有 PS3/Xbox/Kinect 手柄(没有通用手柄)。将尝试使用通用手柄再次测试。

    鼠标锁定演示
    Linux:Simple MouseLock;Mouselock Basic 工作;其他不工作(我猜主要是由于缺少 WebGL 等)。稍后会再次尝试。

    Mac:Simple MouseLock;Mouselock Basic;在世界中滚动;Cubic VR FPS 演示;Quake 3 演示均工作!

    2011 年 12 月 12 日 18:14

    1. Rob Hawkes

      感谢您的反馈,John。我没有 Linux 使用经验,但我使用 10.7.2(我在这里使用它),您遇到游戏手柄 API 问题很有趣。

      只要您通过 USB 将 PS3 手柄连接到 Mac,它就可以正常工作,无需执行任何复杂操作。手柄背面的指示灯会闪烁,您需要在加载演示后按下按钮才能识别手柄。

      如果您在控制台中看不到任何内容并且无法解决问题,我建议您加入 Mozilla IRC 上的 #paladin 频道并询问开发人员,他们比我更了解具体情况。

      2011 年 12 月 13 日 02:27

  5. momendo

    PS3 双震动 3 手柄是否支持运动感应、压力感应(模拟按钮)和触觉反馈?

    http://en.wikipedia.org/wiki/DualShock

    2011 年 12 月 14 日 13:16

    1. Rob Hawkes

      我们非常乐意支持所有这些功能。我知道震动反馈已在 Linux 上运行,并且正在为其他平台开发。至于方向检测和压力感应,我们正在探索这些功能,但据我所知,我们目前正试图先做好基础工作。我从个人经验中了解到,Xbox 360 手柄上的压力敏感触发器正在工作。

      2011 年 12 月 16 日 10:32

  6. KATIE VETRANO

    尊敬的 Firefox
    您能帮我下载 Mac 版的 Firefox 吗?

    2012 年 1 月 13 日 17:19

    1. Rob Hawkes

      您好,您可以从此 URL 下载 Mac 版 Firefox:http://www.mozilla.org/en-US/firefox/fx/

      2012 年 1 月 16 日 04:52

本文的评论已关闭。