Как зациклить функцию обратного вызова со случайной задержкой в ​​Phaser 3? - PullRequest
0 голосов
/ 25 мая 2019

Так что моя игра Phaser 3 требует вызова функции spawn со случайной задержкой каждый раз между 3 и 6 с.Вот что я попробовал:

Enemies = this.time.addEvent({ 
delay:  Phaser.Math.Between(3000,6000),  
loop: true, 
callback: spawn, 
callbackScope: this });

Но этот код не работает.Задержка выбирается случайным образом только один раз, и затем это значение используется повсеместно.

1 Ответ

0 голосов
/ 30 мая 2019

Вы можете видеть в свою собственную ссылку , что существует oneShot timer.Вы можете использовать это внутри функции spawn.

Теперь при вызове spawn() будет создан новый таймер с одним выстрелом со случайной задержкой.Затем таймер снова вызывает spawn() ...

function spawn() {
     let delay = Phaser.Math.Between(3000,6000)
     var timer = scene.time.delayedCall(delay, spawn, args, scope); 
}

spawn()
...