为SWIFT序列下的repeatActionforever内部的子动作生成随机时间

时间:2014-12-26 01:10:16

标签: swift random sprite-kit skaction

您好我每次重复操作时都会尝试生成随机时间间隔,但只有在vied加载时才会随机生成时间间隔。

这是我的代码:

 let moveBucketLeft = SKAction.moveByX(400, y: 0, duration: NSTimeInterval(grabRandomTime()))
    let moveBucketRight = SKAction.moveByX(-400, y: 0, duration: NSTimeInterval(grabRandomTime()))
    moveBucketLeftAndRight = SKAction.sequence([moveBucketLeft,moveBucketRight])
    let repeatMovement = SKAction.repeatActionForever(moveBucketLeftAndRight)
    bucket.runAction(repeatMovement)

方法grabRandomTime只生成1到5之间的随机持续时间。

我需要所有帮助。谢谢!

这是我的生成随机值方法:

func grabRandomTime() ->UInt32{
    var time = arc4random_uniform(6) + 1
    return time
}

该动作在viewdidload中运行一次。我想也许为什么它只取一次随机值。我不确定如何每次运行该方法。我无法在脑海中处理:/

1 个答案:

答案 0 :(得分:3)

在代码中使用let wait = SKAction.waitForDuration(sec, **withRange**: dur)代替duration: NSTimeInterval(grabRandomTime()。带有withRange参数的SKAction.waitForDuration将计算随机时间间隔,其中average = sec且可能的范围= dur