SpriteKit:如何让 SKEmitterNode 粒子闪烁?

SpriteKit: how to make SKEmitterNode particles twinkle?

SpriteKit 中的 SKEmitterNode 可让您更改粒子属性,但如何为粒子设置动画,使其像在该视频的 0:12 标记处一样闪烁?

https://www.youtube.com/watch?v=wYy2G0lVTAM

这可能吗?

我们尝试快速将颜色从黄色变为白色(精灵原本是白色的),但这并没有达到预期的闪烁效果:

        let colorizeYellow = SKAction.colorize(with: UIColor.yellow, colorBlendFactor: 1.0, duration: 0.2)
        let colorizeReset = SKAction.colorize(withColorBlendFactor: 0.0, duration: 0.2)
        let colorizeSequence = SKAction.sequence([colorizeYellow, colorizeReset])
        let colorizeRepeat = SKAction.repeatForever(colorizeSequence)

根据Apple的文档,可以给粒子添加动作:

This means you can perform other interesting tricks, such as animating the particle’s textures.

在您提供的视频示例中,大多数粒子从完整 "twinkle" 开始,然后随着时间的推移变得越来越小,直到只剩下一个点,然后迅速消失。所以从一个闪烁的精灵开始(有点像带有褪色提示的加号),缩小它并用一个普通的点交叉淡入淡出,这个点在缩小时也会淡出。应该和视频里的效果很接近了。