如何获得返回SKAction的函数以重复调用?

时间:2019-02-11 01:51:48

标签: swift4 skaction

我正在Swift 4中编写一个简单的子弹地狱游戏,并为不同类型的敌人制作了生成模式。当我在didMove中调用run函数时,我想运行一个我决定要运行哪种模式的函数。我希望一次运行一个模式。

当前,当调用run函数并开始循环时,一次调用define()函数,并返回一个SKAction,该SKAction在整个游戏中都会重复执行。

我尝试制作积木,弄乱序列以及各种各样的东西,但没有一个能达到预期的效果。

// Chooses what spawning patterns will be used
// Returns an SKAction
func decide() -> SKAction{
    // Randomizer for spawning patterns
    let n = arc4random_uniform(10)
    print(n)
    var chosenPattern = SKAction.run {}

    if n > -1 && n < 5 {
        chosenPattern = spawnPattern2
    }
    else{
        chosenPattern = spawnPattern1
    }

    print(chosenPattern)
    return chosenPattern
}

override func didMove(to view: SKView) {
    backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, 
    alpha: 1)
    initialize()

    update(0)

    defineSpawnPatterns()

    if isGameOver != true{
        run(SKAction.repeatForever(decide()))
    }
}

我希望每次都重复调用决策函数。当一组船只完成产卵和填充后,我希望它选择是继续还是开始产卵新船。

0 个答案:

没有答案