0
var keyPressed = function() {
    key[keyCode] = true;
};
var keyReleased = function() {
    key[keyCode] = false;
};

为什么我可以一次按多个箭头键码,而不能按字母?我正在移动一个播放器,并且使用 WASD 而不是箭头,我不能同时按下Wand A(对角线),因为当我按下Wand时AA会中断W。只能走UPor DOWNor or LEFTor RIGHT.. 但是使用相同的代码和箭头,我可以将它们保持在一起并转到对角线。

我得出的结论是箭头和输入/字母键码之间存在一些差异。有什么不同?如何同时按下两个字母?

4

1 回答 1

0

您可能想使用onkeypress,例如:

var doc = document;
function E(e){
  return doc.getElementById(e);
}
E('yourElementId').onkeypress = function(ev){
  var e = ev || event;
  var kc = e.keycode;
  if(kc == 87 || kc == 38){
    // W or up
  }
  if(kc == 68 || kc == 39){
    // D or right
  }
  if(kc == 83 || kc == 40){
    // S or down
  }
  if(kc == 65 || kc == 37){
    // A or left
  }
}
于 2013-09-20T01:19:38.640 回答