2014-04-27 36 views
0

我寫了下面的代碼:我不能得出一個梯度

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。

回答

0

你不能那樣做。根據蘋果,的SKEffectNode需要和輸入和輸出圖像參數filter屬性:

核心圖像過濾器必須有一個單一inputImage的參數和 產生單一outputImage參數。

這不是CIRadialGradient的情況,它沒有inputImage參數。

+0

如何在SKShapeNode上繪製徑向漸變? – user3578258