Sprite kit 如何使用SKEmitterNode创建闪烁效果?

Sprite kit 如何使用SKEmitterNode创建闪烁效果?,sprite-kit,particles,skemitternode,Sprite Kit,Particles,Skemitternode,我使用粒子发射器创建了一个有星星的背景。看起来还可以,但我希望它们闪烁或闪烁。我得到的最接近的结果是当我改变出生率和寿命变量时,粒子消失并出现在不同的地方。我希望粒子保持在原来的位置,然后随机地淡入淡出。有什么办法吗?到目前为止,我得到的是: 我认为你不能直接在编辑器中做很多事情。如果您可以轻松地使用用于调整发射器的代码,则有两种可能:设置粒子动作以设置颜色、alpha、比例或纹理的动画,或设置自定义着色器以执行任何类型的动画。(我假设你的照片基本上是无限期的,你不希望物体移动或消失。这可能会排

我使用粒子发射器创建了一个有星星的背景。看起来还可以,但我希望它们闪烁或闪烁。我得到的最接近的结果是当我改变
出生率
寿命
变量时,粒子消失并出现在不同的地方。我希望粒子保持在原来的位置,然后随机地淡入淡出。有什么办法吗?到目前为止,我得到的是:


我认为你不能直接在编辑器中做很多事情。如果您可以轻松地使用用于调整发射器的代码,则有两种可能:设置粒子动作以设置颜色、alpha、比例或纹理的动画,或设置自定义着色器以执行任何类型的动画。(我假设你的照片基本上是无限期的,你不希望物体移动或消失。这可能会排除关键帧,但可能将关键帧序列设置为重复模式,帧之间的间隔非常小。)

另一种可能性是,由于位置是静态的,所以只需使一些固定的精灵随机散布,并让它们运行动作来设置动画。我们以前使用过这种方法,在有一堆较暗的星星的背景下制作了大约100个动画精灵,看起来非常不错。大致如下:

让闪烁周期=8.0
让闪烁持续时间=0.5
让bright=CGFloat(0.3)
设dim=CGFloat(0.1)
让变亮=SKAction.fadeAlpha(到:亮,持续时间:0.5*闪烁持续时间)
brighlight.timingMode=.easeIn
让淡入淡出=SKAction.fadeAlpha(to:dim,持续时间:0.5*闪烁持续时间)
fade.timingMode=.easeOut
让闪烁=SKAction.repeatForever(.sequence([变亮,褪色,.等待(持续时间:闪烁周期-闪烁持续时间)])
对于0中的uu..<100{
设star=SKSpriteNode(图像名为“star”)
star.position=CGPoint(x:.random(in:minX…maxX),y:.random(in:minY…maxY))
star.alpha=dim
星形速度=.random(英寸:0.5…1.5)
运行(.sequence([.wait(forDuration:.random(in:0…闪烁周期)),闪烁])
addChild(星型)
}
这是从不同的部分剪切和粘贴的,并简化了一些,因此可能会有拼写错误,但它应该给出一个想法。如果保留发射器,可以尝试上面的
闪烁
作为粒子动作。我不知道如何改变粒子的相对周期,尽管你可以像改变单独的精灵一样,唯一的偏移来自粒子出生时间的差异