Sprite Kit游戏在将场景改回原始场景后崩溃

时间:2014-05-14 10:03:05

标签: ios sprite-kit ios7.1

我有一款效果很好的游戏,位于应用程序商店中。我正在进行更新,其中添加了另一个场景。当游戏启动时它仍然可以正常工作,但如果我改变到另一个场景然后回到第一个场景,游戏仍然可以正常工作。但是,如果我玩游戏一次,然后按下按钮转到另一个场景,然后回到第一个场景,当我尝试播放错误时游戏崩溃:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attemped to add a SKNode which already has a parent: <SKNode> name:'(null)' position:{0, 0} accumulatedFrame:{{inf, inf}, {inf, inf}}'

我尝试在转换之前从场景中删除所有孩子,但我仍然得到错误。

改变场景的代码:

if ([node.name isEqualToString:@"Settings Button"]) {
        MySettingsScene *settingsScene = [MySettingsScene sceneWithSize:self.size];
        [self.view presentScene:settingsScene transition:[SKTransition pushWithDirection:SKTransitionDirectionLeft duration:.5]];
    }

要改回的代码:

if ([node.name isEqualToString:@"Back Button"]) {
    MyScene *homeScene = [MyScene sceneWithSize:self.size];
    [self.view presentScene:homeScene transition:[SKTransition pushWithDirection:SKTransitionDirectionRight duration:.5]];
}

导致它崩溃的行

2 个答案:

答案 0 :(得分:0)

如果您确实阅读了日志错误,则表示您尝试在代码中的某处添加两次子项。从而导致它崩溃。运行您的代码并仔细检查。

答案 1 :(得分:0)

听起来您正想要解除当前场景并转移到新场景。要做到这一点,你可以[mySKView presentScene:nil];,然后转移到你的新场景。