按下键时,太空侵略者项目符号没有出现

时间:2018-11-02 11:56:48

标签: javascript function game-development

在我的太空侵略者游戏中,有一个函数hootAliens();当按空格键时,它应该会创建子弹并向入侵者射击。但是事实并非如此,因为当您按下空格键时什么也没有发生。播放器对象中还有射击功能,该功能每10ms更新一次子弹位置。我不确定为什么子弹没有出现或没有移动。

这是射击外星人的功能:

function shootAliens(event) {
  if(event.keyCode == 32) {
    player.shoot();
  }
}

这是播放器对象:

var player = {
  x: 475,
  y: 590,
  speedX: 0,
  shoot: function() {
    var b = new bullet(this.x+40);
    b.interval = setInterval(function(){
      b.update();
    },10);
  }
};

这是项目符号功能:

function bullet(x) {
  this.x = x;
  this.y = 590;
  this.interval = 0;
  this.update = function() {
    context.clearRect(this.x, this.y, 5, 10);
    for (var i = 0; i < enemies.length; i++) {
      if (this.x > enemies[i].x && this.x < enemies[i].x+45 && this.y > enemies[i].y && this.y < enemies[i].y+30) {
        score += enemies[i].score;
        updateScore();
        clearInterval(this.interval);
      }
    }

    this.y -= 10;
    context.fillStyle = "blue";
    context.fillRect(this.x, this.y, 5, 10);
  }
}

在我的主游戏循环中,我已经调用了shootAliens函数:

function gameLoop() {
  window.addEventListener("keydown",shootAliens,event);
}

0 个答案:

没有答案