在我的太空侵略者游戏中,有一个函数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);
}