SpriteKit:通过转换呈现初始场景

时间:2015-12-16 17:39:52

标签: skview sktransition

我已经在我的游戏场景之间创建了多个过渡,所以我不确定为什么这段代码不起作用。

在我的GameViewController中,我只是将我的TitleScene设置为下一个场景,但我希望它能够淡入。我已经成功完成了我的触摸功能。

以下是代码:

@implementation GameViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Configure the view.
    SKView * skView = (SKView *)self.view;
    skView.showsFPS = NO;
    skView.showsNodeCount = NO;
    /* Sprite Kit applies additional optimizations to improve rendering performance */
    skView.ignoresSiblingOrder = YES;

    // Create and configure the scene.
    SKScene * scene = [TitleScene sceneWithSize:skView.frame.size];
    scene.scaleMode = SKSceneScaleModeResizeFill;

    // Present the scene.
    SKTransition *transition = [SKTransition fadeWithColor:[SKColor blackColor] duration:3.6];
    [skView presentScene:scene transition:transition];

}

1 个答案:

答案 0 :(得分:2)

你不能使用SpriteKit来呈现带有过渡的初始场景,因为SKView(根据定义)在初始场景之前没有显示任何场景,所以从它的角度来看,没有什么从过渡

据推测,从您的角度来看,您希望在SpriteKit启动之前从用户看到的任何内容淡入您的场景 - 您的应用的启动屏幕,也许?一个常见的策略是让初始故事板场景包含UIImageView,其中包含与您的启动屏幕相同的图像,位于SKView之上。当您准备开始游戏时,请使用UIView animateWithDuration:animations:completion:淡出图片视图并将其从视图层次结构中移除,并在下方显示您的SKView。 / p>