0

私はAppleのSpriteKitのドキュメントに従っています.SKEffectNodeを使用しようとしていますが、私の問題は効果が適用されないことです! これが私のコードです:

SKEffectNode *lightingNode = [[SKEffectNode alloc] init];
SKTexture *texture = [SKTexture textureWithImage:[UIImage imageNamed:@"Spaceship"]];
SKSpriteNode *light = [SKSpriteNode spriteNodeWithTexture:texture];
self.filter = [self blurFilter];
lightingNode.position = self.view.center;
lightingNode.blendMode = SKBlendModeAdd;
[lightingNode addChild: light];
[self addChild:lightingNode];

//applying blur 

- (CIFilter *)blurFilter
{
    CIFilter *filter = [CIFilter filterWithName:@"CIBoxBlur"]; // 3
    [filter setDefaults];
    [filter setValue:[NSNumber numberWithFloat:20] forKey:@"inputRadius"];
    return filter;
}

アプリを実行すると、ぼかし効果なしで宇宙船が表示されます。

4

3 に答える 3

0

私はあなたのコードを次の変更で使用しましたが、すべてがうまくテストされました!

//switch this  
lightingNode.position
//to this
light.position 
//add this 
lightingNode.shouldEnableEffects = YES;
//change 
CIBoxBlur
//to
CIGaussianBlur
于 2014-02-06T10:21:40.877 に答える
0

少なくとも iOS 7.0 では、@"CIBoxBlur" フィルターはもう存在しないようです。@"CIGaussianBlur" を使用できます。次のコマンドを実行すると、フィルタの完全なリストを表示できます。

    NSArray* filters = [CIFilter filterNamesInCategories:nil];
    for (NSString* filterName in filters)
    {
        NSLog(@"Filter: %@", filterName);
    }
于 2014-01-05T02:33:07.387 に答える