如何让 SKAction 在随机时间段后重复自身

Vin*_*nce 1 random repeat sprite-kit skaction swift

我目前有下面的代码,它每 2 秒重复一次操作,但我希望它在完全随机的时间段内发生,例如 1 到 10 秒之间的某个时间,我使用 arch4random 尝试了几行不同的代码,其中没有工作了。我希望这是一个简单的修复,非常感谢任何建议。

谢谢 runAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(callBird), SKAction.waitForDuration(2.0)])))

Whi*_*ind 5

如果您尝试随机化持续时间参数,则 + waitForDuration:withRange:将完成这项工作。

runAction(
            SKAction.repeatActionForever(
                SKAction.sequence([SKAction.runBlock({/*do your stuff*/}),
                   SKAction.waitForDuration(2, withRange: 3) ])))
Run Code Online (Sandbox Code Playgroud)

来自文档:

每次执行操作时,该操作都会计算持续时间的新随机值。持续时间可以在任一方向上变化,最多为durationRange 参数值的一半。

意味着如果持续时间设置为 2 并且范围参数设置为 3,则可能的持续时间值将在 0.5 和 3.5 之间变化。