2
我有一個SKEmitterNode場景,它在直接添加到場景時工作正常。是否可以在SKEmitterNode上應用過濾器?
但是,我想在場景中添加一個SKEffectNode以模糊發射器粒子。
這就是它的樣子。
@implementation MyScene
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
/* Setup your scene here */
self.backgroundColor = [SKColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
SKEffectNode *blurNode = [[SKEffectNode alloc] init];
CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
[blurFilter setValue:@10.0 forKey:kCIInputRadiusKey];
blurNode.filter = blurFilter;
blurNode.shouldEnableEffects = YES;
NSString *bokehPath = [[NSBundle mainBundle] pathForResource:@"Bokeh" ofType:@"sks"];
SKEmitterNode *bokeh = [NSKeyedUnarchiver unarchiveObjectWithFile:bokehPath];
[blurNode addChild:bokeh];
[self addChild:blurNode];
}
return self;
}
這會導致空白屏幕。
由於SKScene也是SKEffectNode的子類,我也試着直接在場景中添加CIFilter。
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
/* Setup your scene here */
self.backgroundColor = [SKColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
[blurFilter setValue:@10.0 forKey:kCIInputRadiusKey];
NSString *bokehPath = [[NSBundle mainBundle] pathForResource:@"Bokeh" ofType:@"sks"];
SKEmitterNode *bokeh = [NSKeyedUnarchiver unarchiveObjectWithFile:bokehPath];
[self addChild:bokeh];
self.filter = blurFilter;
}
return self;
}
同樣的結果。
哦!是啊!謝謝 :) – Abhinit