Какова хорошая техника для определения расстояния перемещения мыши в Javascript? - PullRequest
3 голосов
/ 13 сентября 2011

Я создаю пользовательские элементы управления и пытаюсь кодировать элементы управления для мыши. Это то, что я придумал, чтобы получить пользовательский ввод.

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: Если кому-то интересно, то, что я делаю, это что-то вроде Google Streetview или шутер от первого лица. Я просто хочу, чтобы пользователь мог бесконечно перемещать мышь в одном направлении.

Ответы [ 2 ]

2 голосов
/ 13 сентября 2011

Я имею в виду, что вы уже используете обработчик события onmuseover (наиболее эффективный способ, потому что Javascript является асинхронным).Таким образом, вы просто вычисляете расстояния от предыдущего, только когда пользователь перемещает мышь.Если он не двигает музу дальше, игрок просто идет в том же направлении, что и раньше.

1 голос
/ 13 сентября 2011

Нет, нет способа обрабатывать движения мыши за пределами окна браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...