Javascript 如何在JS中使用空格键和if语句?

Javascript 如何在JS中使用空格键和if语句?,javascript,Javascript,我正在制作一个基于教程的游戏,它进行得很顺利,但我想让读取两个项目是否接触的功能只在按下空格键时发生 if (hero.x <= (monster.x + 32) && monster.x <= (hero.x + 32) && hero.y <= (monster.y + 32) && monster.y <= (hero.y + 32)) { ++monstersCaught; reset

我正在制作一个基于教程的游戏,它进行得很顺利,但我想让读取两个项目是否接触的功能只在按下空格键时发生

if (hero.x <= (monster.x + 32)
    && monster.x <= (hero.x + 32)
    && hero.y <= (monster.y + 32)
    && monster.y <= (hero.y + 32)) {
  ++monstersCaught;
  reset();
}

if (hero.x <= (tack.x + 32)
    && tack.x <= (hero.x + 32)
    && hero.y <= (tack.y + 32)
    && tack.y <= (hero.y + 32)) {
  monstersCaught -= monstersCaught;
  reset();
}

if (monstersCaught > 10) {
  monstersCaught -= 10;
}

if(hero.x如果使用jQuery,可以执行类似的操作:

$(window).keypress(function(e) {
    if (e.which === 32) {
        //do your logic here
    }
});
32是空格键的键码

或者仅在javascript中(以displayunicode(事件)的形式在DocumentReady中运行此代码):


最简单的方法是随时知道键盘的状态:为此,您必须侦听键盘事件并更新包含每个键状态的数组

这将导致以下情况:

window.keyStates = [];   // now you can use keyStates anywhere. 
                       // good enough since you seem to be in the first steps.

window.addEventListener('keydown',
          function(e) { keyStates[e.keyCode || e.key] = true;} );

window.addEventListener('keyup', 
          function(e) { keyStates[e.keyCode || e.key] = false;} );
完成此操作后,您可以随时随地使用以下工具测试空格键的状态:

if (keyStates[32] == true) { ... }
为了可读性,您可能更喜欢定义一个包含您使用的几个键码的键对象:

window.key = {
     space : 32,
     enter : 13,
     left  : 37,
     up    : 38,
     right : 39,
    down : 40
}
这样,你就可以写:

if ( keyStates[key.space] == true ) {  
     ... 
} 
哪个更容易掌握


(Rq:如果你搜索键码,这里有一种方法:)

你知道如何在JS中搜索吗?@GREM它会检查空格键是否被按下(键码32)。如果处理程序返回32,那么你就可以执行逻辑。你知道在解析之前if后面有两个语句吗?我不确定我是否理解。是:'if(keyStates)[key.space]==true&&keyState[key.down]==true)“一个例子?
window.key = {
     space : 32,
     enter : 13,
     left  : 37,
     up    : 38,
     right : 39,
    down : 40
}
if ( keyStates[key.space] == true ) {  
     ... 
}