如何在相位器3中以随机延迟循环函数回调?

时间:2019-05-25 02:42:51

标签: javascript phaser-framework

因此,我的Phaser 3游戏要求每次在3秒到6秒之间随机延迟地调用函数生成。 这是我尝试过的:

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

但是此代码不起作用。延迟仅随机选择一次,然后整个使用该值。

1 个答案:

答案 0 :(得分:0)

您可以在your own link中看到一个oneShot timer。您可以在衍生功能中使用它。

现在,当调用spawn()时,将创建一个新的具有随机延迟的单拍定时器。然后计时器再次调用spawn() ...

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

spawn()