我正在设计用户控件,我正在尝试编写鼠标控件。这就是我想出的用户输入。
var mouseInput = new GLGE.MouseInput(window);
window.onmousemove = function(ev){
var dx = window.mouseX - prevMousePos.x;
var dy = window.mouseY - prevMousePos.y;
prevMousePos ={
x:window.mouseX,
y:window.mouseY
};
// I do movement calculations with dx and dy here
}
然而,我上面提到的并不完美,因为如果鼠标到达窗口的末端则无法检测到移动。
有没有更好的方法来检测鼠标移动?我宁愿不使用它的坐标计算它,因为使用该方法我无法计算当鼠标位于屏幕边缘时移动的距离。
PS:如果有人想知道,我正在设计的东西就像谷歌街景或第一人称射击游戏。我只是希望用户能够无限地向一个方向移动鼠标。答案 0 :(得分:2)
我的意思是,你已经在使用onmuseover事件处理程序(最有效的方式,因为Javascript是异步的)。因此,您只需在用户移动鼠标时计算距离之前的距离。如果他没有进一步移动缪斯,那么玩家就会朝着同样的方向前进。
答案 1 :(得分:1)
不,没有方法可以处理浏览器窗口之外的鼠标移动。