我正在尝试更新一个永远运行的序列中的 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
值,并且每次都记忆操作顺序。
最佳答案
发生这种情况是因为 wait 已经确定为 .75,并且没有任何改变。 SKAction.waitForDuration(NSTimeInterval(difficulty)) 不是在寻找难度的引用,只是一个值,所以你需要重新考虑你想如何编码。
关于Swift - SpriteKit - 在永远运行时更新 SKAction.waitForDuration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30241508/