斯威夫特:在一定范围内的随机时间产生敌人?

时间:2015-07-09 04:35:50

标签: swift sprite-kit

好吧所以我知道这个问题已经被那些用其他几种语言提问的人回答了,但似乎并没有人问过Swift。

我正在创建一个精灵套件游戏,我需要随机生成我的敌人(在0-2秒范围内)。现在我让他们每秒钟使用延迟产生它们。这是敌人的生成函数:

let enemy1SpawnDelay = SKAction.waitForDuration(1)

        runAction(SKAction.repeatActionForever(
            SKAction.sequence([
                enemy1SpawnDelay,
                SKAction.runBlock({self.spawnEnemy1()}),
                SKAction.waitForDuration(5.6)])))

这是执行spawn func:

enemy1SpawnDelay

(我不希望屏幕上同时出现多个敌人,敌人向下移动需要5.6秒,因此最后一次延迟)。

enemy1SpawnDelay控制从最后一个敌人出现到下一个敌人出现之间可以经过的时间,所以我需要知道如何将LevelScene设置为等于新每次产生敌人时0-2之间的随机数。

我该怎么做?或者有更好的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

使用arc4random,它返回0到你的数字之间的随机值

spawndelay = arc4random_uniform(UInt32(yournumber))

来自here

的Double
func random(#lower: Double, upper: Double) -> Double {
    let r = Double(arc4random(UInt64)) / Double(UInt64.max)
    return (r * (upper - lower)) + lower
}