繁体   English   中英

SpriteKit如何在每次随机变化动画循环后重复SKAction?

[英]SpriteKit how to repeat an SKAction after a VARYING random number of animation loops each time?

我有一个带有纹理动画的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)

    }

无人拥有的零件可以保护您避免建立强大的参考周期

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM