В моей игре космических захватчиков есть функция shootAliens (); который должен создать пулю и выстрелить в захватчиков при нажатии пробела. Но это не тот случай, когда при нажатии пробела ничего не происходит. В объектах игрока также есть функция выстрела, которая обновляет положение пули каждые 10 мс. Я точно не знаю, почему пуля не появляется и не движется.
Это функция, которая стреляет в инопланетян:
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);
}