我正在使用JavaScript、HTML5画布元素和WebGL来制作一个简单的第一人称视角3D游戏,只是为了好玩。
理想情况下,我希望使用键盘控制移动和鼠标环顾四周,就像在FPS游戏中通常所做的那样。如你所知,在浏览器中有一些限制,因为无法捕获鼠标:
- 当使用onmousemove事件时,鼠标指针到达屏幕边界后将不会检测到进一步的移动(这意味着我将无法绕圈跑,比如)。 - 看到鼠标在屏幕上移动并不是世界末日,但还是有点烦人。
据我所知,无法隐藏鼠标并在JavaScript中设置其位置。 因此,我的问题是:
如果我们不能做这些事情,我们该怎么做才能在浏览器中达到接近桌面游戏体验的鼠标操作?
我的意思是现在,使用当前的API。 不是“可以在某个标准中改变什么以使生活更轻松”。 我也意识到我可以使用键盘来观察周围,但这又回到了1995年Quake实际上是这样玩的那个年代。当然,我知道编写桌面应用程序或至少使用Flash会更容易,但我正在尝试挑战JavaScript的极限。
除了这些问题之外,你有什么建议? 任何类型的参考资料、现有游戏、疯狂的想法、黑客甚至浏览器特定的解决方案都会受到赞赏。
理想情况下,我希望使用键盘控制移动和鼠标环顾四周,就像在FPS游戏中通常所做的那样。如你所知,在浏览器中有一些限制,因为无法捕获鼠标:
- 当使用onmousemove事件时,鼠标指针到达屏幕边界后将不会检测到进一步的移动(这意味着我将无法绕圈跑,比如)。 - 看到鼠标在屏幕上移动并不是世界末日,但还是有点烦人。
据我所知,无法隐藏鼠标并在JavaScript中设置其位置。 因此,我的问题是:
如果我们不能做这些事情,我们该怎么做才能在浏览器中达到接近桌面游戏体验的鼠标操作?
我的意思是现在,使用当前的API。 不是“可以在某个标准中改变什么以使生活更轻松”。 我也意识到我可以使用键盘来观察周围,但这又回到了1995年Quake实际上是这样玩的那个年代。当然,我知道编写桌面应用程序或至少使用Flash会更容易,但我正在尝试挑战JavaScript的极限。
除了这些问题之外,你有什么建议? 任何类型的参考资料、现有游戏、疯狂的想法、黑客甚至浏览器特定的解决方案都会受到赞赏。
body{cursor:url(path/to/blank.gif);}
隐藏光标...这在所有好的浏览器中都有效,我猜你可以通过使用cursor:crosshair
在IE中使光标更加微妙。 - James