如何在if语句Javascript中检查mousemove事件?

时间:2013-05-29 08:06:03

标签: javascript events mousemove

我希望能够将按钮(38,40,37和39)更改为鼠标,所以我不必使用箭头键,因为我正在改变它,下一部分将毫无意义,我想知道为什么当我向下和向右时,它使用函数reset()重置;但是当我向左和向上走的时候却没有?它只是继续滚动

    // Update game objects
var update = function (modifier) {
    if (38 in keysDown) { // Player holding up
        hero.y -= hero.speed * modifier;
        if(hero.y > canvas.height){
            reset();
        }
    }
    if (40 in keysDown) { // Player holding down
        hero.y += hero.speed * modifier;
        if(hero.y > canvas.height){
            reset();
        }
    }
    if (37 in keysDown) { // Player holding left
        hero.x -= hero.speed * modifier;
        if(hero.x > canvas.width){
            reset();
        }
    }
    if (39 in keysDown) { // Player holding right
        hero.x += hero.speed * modifier;
        if(hero.x > canvas.width){
            reset();
        }
    }

1 个答案:

答案 0 :(得分:1)

它继续向左和向上滚动,因为在你的if语句中你似乎正在检查左/右和上/下的相同边界。要离开,你必须检查英雄的x位置是否小于左边界(通常为0)。为了上升,你必须检查英雄的y位置是否小于顶部边界(通常也是0)。

// Check if hero exceeds top boundary
if (hero.y < 0) {
    reset();
}

// Check if hero exceeds left boundary
if (hero.x < 0) {
    reset();
}