我有一个应用程序,用户可以在其中编辑发射器节点并将截图截取到照片库。在他们可以改变出生率,角度等内容的环境中。我允许他们改变发射器节点的颜色。
我正在使用:
node.particleColor = [SKColor redColor];
并且它不会改变粒子的颜色。
然而,当我向其添加NSLog
语句并询问它返回node.particleColor
时1 0 0 1
,这是我所期待的,但节点永远不会改变颜色。
关于我可以做些什么改变颜色的想法?
答案 0 :(得分:7)
对我来说,我有一个像这样创建的SKEmitterNode
SKEmitterNode *explosion = [NSKeyedUnarchiver
unarchiveObjectWithFile:[[NSBundle mainBundle]
pathForResource:@"Explosion" ofType:@"sks"]];
然后改变它的颜色我做这个
explosion.particleColor = [SKColor redColor];
然后在i中将混合因子设置为1
explosion.particleColorBlendFactor = 1.0;
最后我将颜色序列变为零(这是一个棘手的部分)
explosion.particleColorSequence = nil;
通过将颜色序列转为nil,它不再忽略粒子颜色。不知道为什么它最初没有像参考文献那样设置为nil,但这就是为我修复它的原因。希望这有帮助!
答案 1 :(得分:0)
您还必须设置colorBlendFactor
以将设置颜色与粒子纹理混合:
node.colorBlendFactor = 1.0;