gpt4 book ai didi

ios - SpriteKit 如何在每次不同随机数的动画循环后重复 SKAction?

转载 作者:行者123 更新时间:2023-11-29 10:22:47 27 4
gpt4 key购买 nike

我有一个带有纹理动画的 SKSpriteNode。我基本上有一个 4 帧的角色空闲周期和一个闪烁动画序列。我想永远循环角色空闲循环,但让它以随机间隔播放闪烁动画序列。

我有以下代码;

func playIdle() {

let idle_loop = SKAction.repeatAction(action_textureSequence_idle!, count: randomLoopCount())

let sequence = SKAction.sequence([idle_loop, action_textureSequence_blink!])

let repeatSequence = SKAction.repeatActionForever(sequence)

runAction(repeatSequence)

}

func randomLoopCount() -> Int {

return Int(arc4random_uniform(10) + 2)

}

上面的问题是,随机数只生成一次,所以眨眼根本不会随机发生。每次都在相同数量的循环之后。如何实现我正在寻找的效果?

最佳答案

你可以使用递归来实现你想要的:

func playIdle() {

let idle_loop = SKAction.repeatAction(action_textureSequence_idle, count: Int(arc4random_uniform(10) + 2))

let sequence = SKAction.sequence([idle_loop,
action_textureSequence_blink,
SKAction.runBlock({[unowned self] in self.playIdle()})])

runAction(sequence)

}

部分unowned self保护您免于创建 strong reference cycle .

关于ios - SpriteKit 如何在每次不同随机数的动画循环后重复 SKAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34051745/

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