我正在编写HTML5游戏,我希望用户能够通过向左/向右移动鼠标来控制角色的方向。
我可以使用onmousemove和pageX以及pageY进行鼠标移动,但是一旦鼠标击中屏幕边缘......对你来说太糟糕了。 是否有任何跨浏览器的方式(可能是实际鼠标移动而不是光标位置)?
如果没有,我可以将鼠标光标设置在元素中间,如果它到达边缘,只允许它们将鼠标垂直移出元素吗?
答案 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/
以下是需要注意的事项:
*这可能是闪光灯,但不确定。