我有一个应用程序,用户可以编辑一个发射器节点并将截图保存到照片库中。在设置中,他们可以更改诸如出生率、角度等内容。我允许他们更改发射器节点的颜色。
我正在使用:
node.particleColor = [SKColor redColor];
而当我向其中添加NSLog
语句并询问它的node.particleColor
是什么时,它返回了1 0 0 1
,这正是我所期望的,但节点从未改变颜色。
有任何想法可以改变它的颜色吗?
我有一个应用程序,用户可以编辑一个发射器节点并将截图保存到照片库中。在设置中,他们可以更改诸如出生率、角度等内容。我允许他们更改发射器节点的颜色。
我正在使用:
node.particleColor = [SKColor redColor];
而当我向其中添加NSLog
语句并询问它的node.particleColor
是什么时,它返回了1 0 0 1
,这正是我所期望的,但节点从未改变颜色。
有任何想法可以改变它的颜色吗?
嘿,我想我刚刚解决了这个问题。不确定你的代码是否不同。
对我来说,我有一个像这样创建的SKEmitterNode
SKEmitterNode *explosion = [NSKeyedUnarchiver
unarchiveObjectWithFile:[[NSBundle mainBundle]
pathForResource:@"Explosion" ofType:@"sks"]];
然后要改变它的颜色,我这样做
explosion.particleColor = [SKColor redColor];
然后在i中将混合因子设为1
explosion.particleColorBlendFactor = 1.0;
最后,我将颜色序列更改为 nil(这是棘手的部分)。
explosion.particleColorSequence = nil;
将颜色序列设置为 nil,可以使它不再忽略粒子的颜色。不确定为什么最初没有像参考资料中所说的那样将其设置为 nil,但这是我解决问题的方法。希望对您有所帮助!
您还需要设置colorBlendFactor
,以便将设置的颜色与粒子纹理混合:
node.colorBlendFactor = 1.0;
Xcode IDE
有什么关系吗???? - Popeye