gpt4 book ai didi

ios - 如何创建到 SKAction 的过渡?

转载 作者:行者123 更新时间:2023-12-01 20:20:25 26 4
gpt4 key购买 nike

我创建了每 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 操作完成时都会调用它自己。这是必需的,因为只需重复此操作:
 SKAction.colorizeWithColor(UIColor.randomColor(), colorBlendFactor: 1, duration: 3)

在 Action 序列中将始终将背景着色为相同的颜色。这会发生,因为当您创建一次 Action 时,您无法随时间更改它(例如,您可以更改其速度或暂停它,但您无法更改 duration 或任何其他传递的参数)。相反,我们 重新创建 与某个键相关的操作 每次 .这是来自有关与键关联的操作的文档:

If an action using the same key is already running, it is removed before the new action is added.



因此,每次我们运行与“着色”键相关联的新 Action 时,前一个 Action 都会被删除,并且始终只有一个带有该键的 Action 。

关于ios - 如何创建到 SKAction 的过渡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35815403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com