尝试从代码中的WITHIN更改我的SKEmitterNode发出的粒子的颜色

时间:2014-03-28 18:37:25

标签: sprite-kit skemitternode

我有一个应用程序,用户可以在其中编辑发射器节点并将截图截取到照片库。在他们可以改变出生率,角度等内容的环境中。我允许他们改变发射器节点的颜色。

我正在使用:

node.particleColor = [SKColor redColor];

并且它不会改变粒子的颜色。

然而,当我向其添加NSLog语句并询问它返回node.particleColor1 0 0 1,这是我所期待的,但节点永远不会改变颜色。

关于我可以做些什么改变颜色的想法?

2 个答案:

答案 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;