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 ) {
...
}