如何创build转换到SKAction?
我创build的function,每10秒更改我的背景颜色,我想添加转换时,它改变了背景的颜色。
游戏场景:
let wait = SKAction.waitForDuration(10) let block = SKAction.runBlock({ [unowned self] in self.backgroundColor = UIColor.randomColor() }) let sequence = SKAction.sequence([wait,block]) runAction(SKAction.repeatActionForever(sequence), withKey: "colorizing")
感谢帮助!
你可以这样做:
override func didMoveToView(view: SKView) { colorize() } func colorize(){ let colorize = SKAction.sequence([ SKAction.colorizeWithColor(UIColor.randomColor(), colorBlendFactor: 1, duration: 3), SKAction.runBlock({[unowned self] in self.colorize()}) ]) runAction(colorize, withKey: "colorizing") }
每次colorizeWithColor操作完成时,这是recursion函数,它自己调用它自己。 这是必需的,因为只是重复这一点:
SKAction.colorizeWithColor(UIColor.randomColor(), colorBlendFactor: 1, duration: 3)
在一个动作序列中将背景颜色总是相同的颜色。 这将发生,因为当你创build一个动作一次,你不能改变它随着时间的推移(你可以改变它的速度或暂停它,但你不能改变duration
或任何其他传递的参数)。相反,我们– 每次创build与某个键相关的操作。 这是关于与键相关的操作的文档:
如果使用相同密钥的操作已经在运行,则在添加新操作之前将其删除。
所以每次我们运行一个新的动作,与“着色”键相关联,先前的动作就会被删除,并且总是只有一个动作。