0
我有一段代码,它运行一个持续时间为columnTime的等待操作,然后运行一段代码。这导致该块运行一次,然后等待时间,那么在块,然后等待时间等函数以无限期递减的间隔运行等待操作
func startSpawning(){
print(columnTime)
let wait = SKAction.waitForDuration(columnTime)
let block = SKAction.runBlock({[unowned self] in self.spawnObstacle()})
let sequence = SKAction.sequence([wait, block])
runAction(SKAction.repeatActionForever(sequence), withKey: "spawning")
} //startSpawning
我想以下几点:等待5秒钟,运行阻滞代码从而降低柱时间4.95秒,跑等待4.95秒,运行阻止代码等待时间减少到4.90秒,运行等待4.90秒,等等。
我试过以下,但它一遍又一遍地运行每一个动作,没有任何等待。我的输出用来自等待和块代码块的打印语句洪泛。
func startSpawning(){
let wait = SKAction.runBlock({[unowned self] in self.waitFunc()})
let block = SKAction.runBlock({[unowned self] in self.spawnObstacle()})
let sequence = SKAction.sequence([wait, block])
runAction(SKAction.repeatActionForever(sequence), withKey: "spawning")
} //startSpawning
func waitFunc() -> SKAction{
print("running wait func")
return SKAction.waitForDuration(getColumnTime())
}
func getColumnTime() -> NSTimeInterval {
return columnTime
}
这不是一次只能执行一次操作吗? – lelephant
不,你在序列的结尾调用startSpawning()来开始一个新的序列 – Knight0fDragon
不可思议!这就是我要说的,但有一个评论字符长度,所以我也写了这个句子 – lelephant