我正在搞一个非常简单的游戏,左右箭头都有一个关键的监听器。
当我用空格键暂停游戏时,我希望那些听众在游戏暂停时什么都不做。我想我可以将它实现到暂停功能中,或者当键监听器听到空格键时。我对此比较陌生,只是简单地不知道如何做到这一点。
function keyListener(e){
if(!e){
//for IE
e = window.event;
}
if(e.keyCode==37 && paddleLeft > 0){
//keyCode 37 is left arrow
paddleLeft -= 25;
paddle.style.left = paddleLeft + 'px';
}
if(e.keyCode==39 && paddleLeft < 925){
//keyCode 39 is right arrow
paddleLeft += 25;
paddle.style.left = paddleLeft + 'px';
}
if(e.keyCode==32){
pause();
}
}
这是暂停功能:
function pause(){
if(!gamePaused){
timer = clearTimeout(timer);
gamePaused = true;
} else if(gamePaused) {
timer = setTimeout(start(),1000/50);
gamePaused = false;
}
}
答案 0 :(得分:0)
if(e.keyCode==37 && paddleLeft > 0 && !gamePaused){
//keyCode 37 is left arrow
paddleLeft -= 25;
paddle.style.left = paddleLeft + 'px';
}
if(e.keyCode==39 && paddleLeft < 925 && !gamePaused){
//keyCode 39 is right arrow
paddleLeft += 25;
paddle.style.left = paddleLeft + 'px';
}
答案 1 :(得分:0)
只需在左/右ifs中添加!gamePaused 条件。
如果您禁用keyListener,则无法再取消暂停游戏。
答案 2 :(得分:0)
或者,您可能需要考虑维护一堆关键侦听器。空格键会将一个新的键监听器推入堆栈,相应的菜单选项会将其弹出,游戏循环只会更新顶部的监听器。