好的,所以我正在创建一个sprite kit游戏,我正在尝试做的是生成一个随机Double
,然后将其输入SKAction.waitForDuration
,以便执行随机延迟。
我正在使用此延迟来延迟在游戏中产生敌人。以下是我尝试生成并运行随机延迟的方法:
func randomDelay() {
var randLower : UInt32 = 1
var randUpper : UInt32 = 50
var randDelayTime = arc4random_uniform(randUpper - randLower) + randLower
var randDelayTimer = Double(randDelayTime) / 10
runAction(SKAction.waitForDuration(randDelayTimer))
println(randDelayTimer)
}
这里我在产生敌人之前执行此功能:
runAction(SKAction.repeatActionForever(
SKAction.sequence([
SKAction.runBlock({self.randomDelay()}),
SKAction.runBlock({self.spawnEnemy1()})
)))
代码没有崩溃,但没有执行延迟。敌人只是以相同的速度反复产生。
我知道randomDelay()
函数正在生成一个随机Double
,因为当我println(randDelayTimer)
时,我每次都会得到一个随机的Double
。
为什么randomDelay()
的延迟不会被运行?我该如何解决这个问题?