ios如何创建过渡到 SKAction?

发布时间: 2017/4/3 15:00:04
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我创建每 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")

谢谢你的帮助 !

解决方法 1:

你可以像这样︰

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 操作完成的递归函数。这是必需的因为那只是重复这一事实︰

 SKAction.colorizeWithColor(UIColor.randomColor(), colorBlendFactor: 1, duration: 3)

里面的行动序列将着色的背景总是相同的颜色。会发生因为当您创建一个动作一次,你不能改变它随着时间的推移 (您可以更改它的速度或暂停它例如,但不是能更改 duration 或任何其他传递的参数)。相反,我们重新创建与某些关键的每次关联的操作。这是从关于与键关联的操作文档︰

如果使用相同的密钥操作已在运行,它被移除之前添加新的操作。

所以每次我们运行一个新的动作,与"彩色化"键关联上一个操作删除和将总是与该密钥只有一个行动。

官方微信
官方QQ群
31647020