在javascript中的蛇游戏evenListener bug

时间:2018-03-08 23:22:10

标签: javascript javascript-events event-handling addeventlistener

我用html canvas元标记中的javascript编码经典蛇游戏。 我在eventListener中将keyPress事件添加到文档中。但我很难按快速按钮,游戏重置如何解决这个错误

document.addEventListener('keydown', this.onKeyPress.bind(this));
onKeyPress(e) {
  //turn left
  if (e.keyCode === 37 && this.velocityX !== 1) {
    this.velocityX = -1;
    this.velocityY = 0;
  }
  // turn up
  else if (e.keyCode === 38 && this.velocityY !== 1) {
    this.velocityX = 0;
    this.velocityY = -1;
  }
  //turn right
  else if (e.keyCode === 39 && this.velocityX !== -1) {
    this.velocityX = 1;
    this.velocityY = 0;
  }
  // turn down
  if (e.keyCode === 40 && this.velocityY !== -1) {
    this.velocityX = 0
    this.velocityY = 1;
  }
}

1 个答案:

答案 0 :(得分:0)

您的onKeyPress功能是否写得不正确?尝试将其写为:

function onKeyPress(e) {...}

而不是

onKeyPress(e) {...}

它没有解释重置,但至少应该让你更接近一个有效的解决方案。