在更改设备方向时,呈现的SKScene将更改回到开始场景

时间:2013-12-30 09:12:52

标签: objective-c orientation sprite-kit skscene

我遇到使用多个SKScene的Sprite工具包问题。每当我更改设备方向时,精灵套件都会呈现第一个SKScene。当我翻转iPhone时,游戏场景消失,设备显示菜单场景。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

感谢您的帮助。我用“if ( !skView.scene ) {...}”解决了它:

- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];

    SKView * skView = (SKView *)self.view;

    if ( !skView.scene ) {  // <------- !! 

    SKScene * scene = [MenuScene sceneWithSize:skView.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;

    [skView presentScene:scene];
    }
}

答案 1 :(得分:0)

我猜你在viewcontroller的presentScene方法中运行viewWillLayoutSubviews,而不保证在某些情况下此方法会重复运行,例如调整视图大小时。