Not sure why this doesnt work.
It crashes with EXC_BAD_ACCESS when it tries to create the ship node.
SKTexture *tex = [SKTexture textureWithImageNamed:@"Spaceship"];
CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];
[filter setValue:@0.6 forKey:kCIInputIntensityKey];
SKTexture *texDone;
if (filter) {
texDone = [tex textureByApplyingCIFilter:filter];
}
if (texDone) {
SKSpriteNode *ship = [SKSpriteNode spriteNodeWithTexture:texDone];
[self addChild:ship];
ship.position = CGPointMake(200, 200);
}
same crash as creating the ship.
I have used this SKEffect, but it is a lot more code ? For same filter. The following works.
SKSpriteNode *spriteToFilter = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];
[filter setValue:@1.0 forKey:kCIInputIntensityKey];
SKEffectNode *effectNode = [SKEffectNode node];
effectNode.filter = filter;
effectNode.shouldEnableEffects = YES;
[effectNode addChild:spriteToFilter];
[self addChild:effectNode];
effectNode.position = CGPointMake(200, 200);