Swift - SpriteKit - 在永远运行时更新SKAction.waitForDuration

时间:2015-05-14 15:42:15

标签: swift sprite-kit action skaction

我正在尝试以永久运行的顺序更新waitForDuration操作。

 override func didMoveToView(view: SKView) {
    //code
    runAction(SKAction.repeatActionForever(runSeq()))
}

func runSeq() -> SKAction{
    var difficulty: CGFloat = 0.75

    let updateAction = SKAction.runBlock({
        self.runCount++
        self.runCount %= 4
        println(self.runCount)
        if self.runCount == 0 {
            difficulty -= 0.1
        }

        if self.children.count > 51{
            println("You loose")
        }else{
            self.scoreLabel.text = String(format: "Score: %i", self.score)
        }
    })

    let createAntAction = SKAction.runBlock({self.createAnt()})

    var wait = SKAction.waitForDuration(NSTimeInterval(difficulty))

    let seq = SKAction.sequence([createAntAction, wait, updateAction])

    return seq
}

difficulty是我想要的值,每4个循环我希望它减少一定量。目前,起始值保持不变,并且不会更改,即使我正在更改difficulty值,并且每次都会调用操作序列。

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为等待已经确定为.75,并且没有任何改变。 SKAction.waitForDuration(NSTimeInterval(难度))不是在寻找对难度的引用,而只是一个值,因此您需要重新考虑如何对此进行编码。