我一直在尝试在 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 中对此进行了测试。
最佳答案
我尝试了您的代码,它可以重现您的问题。
这似乎是 CurlTransition 的问题。如果您使用内置转换之一,它可以工作:
return [SKTransition doorsCloseVerticalWithDuration:2];
你确定shadingImage不能是透明的吗?
关于ios - SKTransition 过渡WithCIFilter :duration: not animating,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518289/