在javascript中使用'addEventListener'的'click'事件不支持抓住鼠标

时间:2018-02-09 10:36:07

标签: javascript addeventlistener

在javascript中,我正在使用鼠标控制“鸟”进行类似鸟类的游戏。然而,我遇到了一个问题:每当我握住鼠标时,鸟就会下降而不是上升。到目前为止,这是我的代码:

function handleMouseInput() {
    if (running === true) {
        box.changeY -= 0.56;
    }
    // ...
}
// ...
window.addEventListener('mousedown', handleMouseInput);

是否有支持我游戏的不同选项?

1 个答案:

答案 0 :(得分:0)

嗯,你需要将鸟推上去,直到释放鼠标。我不确定你的游戏是如何运作的,但我会想象这样的事情:

var mouseIsDown = false;
// runs every game tick
function gameTick() {
    if(mouseIsDown) {
        /// push the bird up
        pushTheBirdUp();
    }
    else {
        /// bird goes down as usual
        pushTheBirdDown();
    }
    // render the game
    renderGame()
}

// now mouse handlers
window.addEventListener("mousedown", function(e) {
    mouseIsDown = true;
});
window.addEventListener("mouseup", function(e) {
    mouseIsDown = false;
});
// mouse leaves the browser tab
window.addEventListener("mouseleave", function(e) {
    mouseIsDown = false;
});