JavaScript游戏中的鼠标管理

JavaScript游戏中的鼠标管理,javascript,Javascript,我使用JavaScript、HTML5画布元素和WebGL在第一人称视图中制作了一个简单的3D游戏 理想情况下,我想通过使用键盘移动和鼠标环顾四周来控制我的移动,就像你在FPS游戏中通常做的那样。正如您可能理解的那样,由于无法捕获鼠标,因此浏览器中存在一些限制: 当使用onmousemove事件时,当鼠标指针到达我的屏幕边界时,将检测不到进一步的移动(例如,这意味着我将无法在圆圈中运行) 看着鼠标在屏幕上移动并不是世界末日,但有点烦人 据我所知,在JavaScript中隐藏鼠标以及设置鼠标位

我使用JavaScript、HTML5画布元素和WebGL在第一人称视图中制作了一个简单的3D游戏

理想情况下,我想通过使用键盘移动和鼠标环顾四周来控制我的移动,就像你在FPS游戏中通常做的那样。正如您可能理解的那样,由于无法捕获鼠标,因此浏览器中存在一些限制:

  • 当使用
    onmousemove
    事件时,当鼠标指针到达我的屏幕边界时,将检测不到进一步的移动(例如,这意味着我将无法在圆圈中运行)
  • 看着鼠标在屏幕上移动并不是世界末日,但有点烦人
据我所知,在JavaScript中隐藏鼠标以及设置鼠标位置是不可能的因此,我的问题是:

如果我们无法实现这些功能,那么在浏览器中使用鼠标时,我们可以做些什么来接近桌面游戏体验?

我的意思是现在,使用当前的API。而不是“在某些标准中可以改变什么,使生活更轻松”。另外,我意识到我可以用键盘四处看看,但我们回到1995年,地震实际上是这样播放的。当然,我知道写一个桌面应用程序或者至少使用Flash会更容易,但我试图在这里推广JavaScript的局限性


除了这些,你还有什么建议?任何类型的参考资料、现有游戏、疯狂想法、黑客甚至特定于浏览器的解决方案都将受到欢迎。

我已经为游戏做了一些鼠标定位的实验,据我回忆,这是我唯一没有制作behave的Opera,所以我给了它一个十字架。一个关键点是,一些浏览器会将完全不可见的光标图像显示为一个黑匣子,但只要有一个几乎不可见的像素就可以了。您可以随意选择鼠标隐藏部分和光标文件

我自己也考虑了一下环视部分,上/下移动很容易,因为你无论如何都会对其进行封盖,你所要做的就是确保封盖与鼠标移动封盖同步。对于侧边部分,我建议您尝试干扰灵敏度,当鼠标接近屏幕边缘时,灵敏度应向上朝屏幕边缘移动,向下朝远离屏幕边缘的方向移动。我还没有尝试过这个方法,所以我不知道它实际上会有多好,但是它应该有助于保持鼠标在中间区域,即使用户比另一个方向旋转更多。


祝你项目顺利,听起来很激动人心。

你的希望和梦想现在有了新的

我想知道你是如何环顾四周的,我还没有真正尝试过,因为我CBA想得到一个Chrome的开发版本,但我猜他们有类似的东西,你可以用
body{cursor:url(path/to/blank.gif);}隐藏光标
。。。这在所有优秀的浏览器中都适用,我想你可以在IE中使用
cursor:crosshair
,使光标变得更微妙。quake项目看起来非常有趣,我将尝试看看他们在做什么。谢谢你的创意!Quake port,常见问题解答,标题2:“这种鼠标外观的实现非常糟糕!”。看来他们根本没有解决这个问题。嗯。。我没有想到那种动态敏感性。我有点怀疑,因为它可能会让人感觉和以前不一样,但绝对值得一试!