我想减少 SKAction.waitForDuration(X) 的参数。
我正在使用 Flappy Bird 教程(https://www.youtube.com/watch?v=RjUvEiNxWfc - 请参阅第 7 分钟),我想做类似的事情
var timeToWait:Int = 8
let spawn = SKAction.runBlock({
() in
self.createWalls()
timeToWait--
})
let delay = SKAction.waitForDuration(timeToWait)
let SpawnDelay = SKAction.sequence([spawn, delay])
let spawnDelayForever = SKAction.repeatActionForever(SpawnDelay)
self.runAction(spawnDelayForever)
但是,waitForDuration 的参数是 NSTimer,而不是 float 。我可以做什么来更改该参数?
谢谢!
最佳答案
waitForDuration 需要一个 NSTimeInterval 类型的值。
当您将 timeToWait 传递给函数时,您可以键入强制转换 timeToWait:
let delay = SKAction.waitForDuration(NSTimeInterval(timeToWait))
顺便说一句,您的代码似乎想要减少每次生成之间的延迟,但它不会这样做,因为 timeDelay 是在您创建延迟操作时捕获的,并且如果您之后修改变量,则不会更改该操作的持续时间。
[编辑]
下面是一个以周期为单位加快产卵间隔(从 8 到 1)的示例:
let spawn = SKAction.runBlock({ self.createWalls() })
var spawnCycle:[SKAction] = []
for timeToWait in (1...8).reverse()
{
spawnCycle.append(spawn)
spawnCycle.append(SKAction.waitForDuration(NSTimeInterval(timeToWait)))
}
self.runAction(SKAction.repeatActionForever(SKAction.sequence(spawnCycle)))
关于swift - 等待持续时间减少参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35444275/