есть ли способ, которым вы могли бы установить задержку между двумя: this.bullets.push (this.ship.shoot());

#javascript

#javascript

Вопрос:

Есть ли способ добавить задержку между двумя; this.bullets.push(this.ship.shoot());

 if (this.mscore >= 1000) {
  if (input.isPressed("spacebar")) {

    this.bullets.push(this.ship.shoot());
    this.bullets.push(this.ship.shoot());

  }
}
  

Комментарии:

1. вы могли бы использовать setTimeout()

2. k Я попробую это

3. input.isPressed("spacebar") ? Уверены, что это JavaScript? Если да, опубликуйте объект или класс, который определяет .isPressed() метод.

4. Итак, как бы вы это изложили, и да, это JavaScript, название которого заканчивается на .js

Ответ №1:

Одним из возможных решений является использование setTimeout() , в следующем примере второй код будет выполнен примерно после 1000ms :

 let delay = 1000;

if (this.mscore >= 1000)
{
    if (input.isPressed("spacebar"))
    {
        this.bullets.push(this.ship.shoot());
        let that = this;

        setTimeout(
            () => that.bullets.push(that.ship.shoot()),
            delay
        );
    }
}
  

Ответ №2:

Вы могли бы использовать setInterval или setTimeout

Ниже приведен пример setInterval, который будет продолжать «стрелять».

 const pressed = true
let interval = null

if (pressed) {
  shoot()
  interval = setInterval(() => shoot(), 1000)
} else {
  interval = clearInterval(interval)
}

function shoot() {
  console.log('shoot')
}