我正在尝试淡入一个需要启动的发射器节点,好像从动画开始已经传递了大约100秒,所以在我的代码中,当我设置发射器时我有这条线:
emitter.advanceSimulationTime(100);
然后,当我需要将它添加到我的场景时,我这样做:
worldNode.add(emitter);
emitter.run(SKAction.fadeIn(withDuration:2.0));
但是发射器突然弹出,好像fadeIn不在那里。如果我删除advanceSimulationTime调用,发射器按预期淡入,但不幸的是我需要它。我尝试了一些不同的东西,但没有任何效果,任何提示?
答案 0 :(得分:1)
将发射器嵌套在另一个SKNode上,并通过其alpha
属性淡化该节点的不透明度。这将以您希望的方式为您提供活动发射器的视觉淡入,因为alpha属性沿着层次结构向下传播。
来自Apple文档...
声明
var alpha: CGFloat { get set }
<强>讨论强>
默认值为1.0
SKNode类不执行绘图,而是执行许多子类 做。绘制节点或其任何后代时,alpha 每个像素的分量乘以节点的alpha属性和 然后夹紧到0.0-1.0的范围。使用此修改的alpha值 将像素混合到帧缓冲区中。渲染的子类 content定义用于确定所使用的混合操作的属性 结合alpha值将像素混合到父级中 帧缓存。