0

我搞砸了一个非常简单的游戏,它有一个左右箭头的键监听器。

当我用空格键暂停游戏时,我希望那些听众在游戏暂停时什么都不做。我在想我可以将它实现到暂停功能中,或者当按键听众听到空格键时。我对此比较陌生,只是不知道该怎么做。

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;
   }
}
4

3 回答 3

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';
   }
于 2012-10-10T17:23:21.650 回答
0

只需在左/右 ifs 中放置一个!gamePaused条件。

如果您禁用 keyListener,您将无法再取消暂停游戏。

于 2012-10-10T17:25:09.877 回答
0

或者,您可能需要考虑维护一组关键侦听器。空格键会将新的按键监听器压入堆栈,相应的菜单选项会将其弹出,游戏循环只会更新顶部的监听器。

于 2012-10-10T18:10:58.947 回答