如何一次检测多个关键操作

时间:2016-02-17 16:58:38

标签: javascript

今天我想知道如何一次检测到多个关键动作。例如,在这个代码示例中,我希望能够一次按下2个箭头键,以便球可以对角移动。

以下是代码:

echo $(ps -ef | grep image | awk '{print $3}')

如果你测试了上面的代码,你会发现你可以用箭头键移动一个小球。我想知道如何检测同时按下的多个箭头键。因此,如果我按下向下按钮和向右按钮,它将对角线移动到右下角。我该如何编码呢?一个例子会很棒!谢谢大家!

1 个答案:

答案 0 :(得分:0)

这个的基本思想是你必须跟踪被按下的键,可能是在一个对象中,然后在它们被释放时将它们删除。

var keysDown = {};
$('body').keydown(function(event) {
  keysDown[event.keyCode] = true;
}).keyup(function(event) {
  keysDown[event.keyCode] = false;
});

然后,您可以在更改方向时引用这些键。

// This is easier if you switch the way you save direction
var directions = {
  up: 38,
  down: 40,
  ...
};
Ball.prototype.setDirection = function() {
  var upPressed = keysDown[directions.up];
  var downPressed = keysDown[directions.down];
  ...

  if (upPressed) {
    this.ySpeed = -5;
  } else if (downPressed) {
    this.ySpeed = 5;
  }

  if (leftPressed) {
  ...
};