JS - 需要获取原始鼠标输入(或接近它)

时间:2012-02-10 22:11:17

标签: javascript html5 mouse

我正在编写HTML5游戏,我希望用户能够通过向左/向右移动鼠标来控制角色的方向。

我可以使用onmousemove和pageX以及pageY进行鼠标移动,但是一旦鼠标击中屏幕边缘......对你来说太糟糕了。 是否有任何跨浏览器的方式(可能是实际鼠标移动而不是光标位置)?

如果没有,我可以将鼠标光标设置在元素中间,如果它到达边缘,只允许它们将鼠标垂直移出元素吗?

3 个答案:

答案 0 :(得分:4)

使用指针锁API。

http://www.html5rocks.com/en/tutorials/pointerlock/intro/

https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock

这是“实验性的”。

浏览器会询问用户是否有权锁定光标。

答案 1 :(得分:1)

我知道没有办法做到这一点,但可能有办法达到同样的效果。

当光标开始向左(或向右)移动时,您将其记录下来。当光标碰到屏幕边缘时,它可能会开始向上或向下移动(因为没有人移动他们的手足够稳定以跟随1像素的直线)。您将此上下移动解释为在相同方向上移动(在这种情况下为左),直到检测到向右移动。

如果光标在开头向右移动,则向上和向下记录为右移动,直到检测到左方向。

答案 2 :(得分:0)

除非您在目标平台的原生应用程序中包含该页面,或者您要求为现代浏览器支持的游戏页面全屏,否则这是不可能的。

https://developer.mozilla.org/en/DOM/Using_full-screen_mode

http://hacks.mozilla.org/2012/01/using-the-fullscreen-api-in-web-browsers/

以下是需要注意的事项:

  • 为了安全起见,网页无法检测到浏览器视口外的光标。
  • 无法通过网页控制系统级设备(例如:无法控制鼠标)

*这可能是闪光灯,但不确定。