SKTransition transitionWithCIFilter:duration:不动画

时间:2014-05-07 12:48:29

标签: ios sprite-kit transitions core-image

我一直在尝试在SpriteKit中的场景之间创建一个翻页转换,如下所示:

+ (SKTransition *)pageTurnTransition {
    float w = 768.0;
    float h = 1024.0;
    CIVector *extent = [CIVector vectorWithX:0 Y:0 Z:w W:h];

    CIImage *shadingImage = [[CIImage alloc] initWithColor:[CIColor colorWithRed:0.2 green:0.2 blue:0.2]];

    CIImage *blankImage = [[CIImage alloc] initWithColor:[CIColor colorWithRed:1 green:1 blue:1]];

    CIFilter *pageCurlFilter = [CIFilter filterWithName:@"CIPageCurlTransition"
                                          keysAndValues:
                                @"inputExtent", extent,
                                @"inputShadingImage", shadingImage,
                                @"inputBacksideImage", blankImage,
                                @"inputAngle",[NSNumber numberWithFloat: -0.2*M_PI],
                                @"inputRadius", [NSNumber numberWithFloat: 70],
                                nil
                                ];
    return [SKTransition transitionWithCIFilter:pageCurlFilter duration:1];
}

这就是我称之为过渡的方式:

SKScene *spaceshipScene = [[SpaceshipScene alloc] initWithSize:self.size];
[[self view] presentScene:spaceshipScene transition:[HelloScene pageTurnTransition]];

问题是转换没有动画,只是在转换的指定(1秒)持续时间内停留在原始场景,然后突然显示下一个场景。

有谁知道我做错了什么?我已经在iPad模拟器iOS 7.1中测试了这个。

1 个答案:

答案 0 :(得分:2)

我尝试了您的代码,它可以重现您的问题。

这似乎是CurlTransition的一个问题。如果您使用其中一个内置过渡,它可以工作:

return [SKTransition doorsCloseVerticalWithDuration:2];

你确定shadingImage不能透明吗?