Javascript多个按键郁闷

Fen*_*Huo 6 javascript html5 key-bindings

所以现在我正在使用一个函数,如果一个键被按下,则将值设置为true,不管第一个键是否仍被按下,另一个键被按下.

 function doc_keyUp1(e) {
      if (e.keyCode == 37){
        lPunch = true 
      }
  }
  function doc_keyUp2(e) {
      if (e.keyCode == 39){
        rPunch = true
      }
  }
  document.addEventListener('keyup', doc_keyUp1, false)
  document.addEventListener('keyup', doc_keyUp2, false)
Run Code Online (Sandbox Code Playgroud)

问题是,我希望能够确保如果按下第二个键,第一个键仍然必须按下,这样有人不能只按一个然后快速按下另一个并使它看起来像如果他们同时被压下来的话.

有任何想法吗?

nnn*_*nnn 7

假设你有某种类似"游戏循环"的东西,比如下面的作品(或者我应该说"应该工作",因为我很长时间没有编写类似的东西,因此没有用当前的浏览器进行测试 - 绝对习惯工作):

var keyPressed = {};

document.addEventListener('keydown', function(e) {
   keyPressed[e.keyCode] = true;
}, false);
document.addEventListener('keyup', function(e) {
   keyPressed[e.keyCode] = false;
}, false);

function gameLoop() {
   if (keyPressed["39"] && keyPressed["37"]) {
      // do something (update player object state, whatever)
   }
   // etc
   // update display here
   setTimeout(gameLoop, 5);
}

gameLoop();
Run Code Online (Sandbox Code Playgroud)