我无法绘制渐变

时间:2014-04-27 12:43:47

标签: ios objective-c sprite-kit

我写下面的代码:

CIFilter *Filter = [CIFilter filterWithName:@"CIRadialGradient"];

CIColor *startColor = [CIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
CIColor *endColor = [CIColor colorWithRed:0 green:0 blue:0 alpha:1.0];
CIVector *startVector = [CIVector vectorWithX:CGRectGetMidX(self.frame) Y:CGRectGetMidY(self.frame)];
NSNumber *radius1 = [NSNumber numberWithInt:100];
NSNumber *radius2 = [NSNumber numberWithInt:1000];
[Filter setValue:startVector forKey:@"inputCenter"];
[Filter setValue:radius1 forKey:@"inputRadius0"];
[Filter setValue:radius2 forKey:@"inputRadius1"];
[Filter setValue:startColor forKey:@"inputColor0"];
[Filter setValue:endColor forKey:@"inputColor1"];

SKEffectNode *effectNode = [SKEffectNode node];
effectNode.filter = Filter;
effectNode.shouldEnableEffects = YES;

[self addChild:effectNode];

但在屏幕上,没有任何反应。我使用Sprite Kit。

1 个答案:

答案 0 :(得分:0)

你不能这样做。根据Apple的说法,filter的{​​{1}}属性需要输入和输出图像参数:

  

Core Image过滤器必须具有单个inputImage参数和   生成一个outputImage参数。

SKEffectNode没有CIRadialGradient参数。