6

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

我在用:

node.particleColor = [SKColor redColor];

它不会改变粒子的颜色。

但是,当我NSLog向它添加语句并询问它node.particleColor返回了什么时1 0 0 1,这是我所期望的,但节点永远不会改变颜色。

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

4

2 回答 2

11

嘿,我想我刚刚发现了这个问题。但是不确定您的代码是否不同。

对我来说,我有一个像这样创建的 SKEmitterNode

SKEmitterNode *explosion = [NSKeyedUnarchiver
                                        unarchiveObjectWithFile:[[NSBundle mainBundle]
                                        pathForResource:@"Explosion" ofType:@"sks"]];

然后改变它的颜色我这样做

explosion.particleColor = [SKColor redColor];

然后在我将混合因子设置为 1

explosion.particleColorBlendFactor = 1.0;

最后我将颜色序列设置为零(这是棘手的部分)

explosion.particleColorSequence = nil;

通过将颜色序列变为 nil,它不再忽略粒子颜色。不知道为什么它最初没有像参考资料所说的那样设置为零,但这就是为我解决的问题。希望这可以帮助!

于 2014-05-22T22:25:04.470 回答
1

您还必须设置colorBlendFactor以将设置的颜色与粒子纹理混合:

node.colorBlendFactor = 1.0;
于 2014-03-28T21:36:38.547 回答