2014-05-14 4 views
0

У меня есть игра, которая отлично работает и находится в магазине приложений. Я делаю обновление, в котором я добавил другую сцену. Когда игра запустится, она все равно будет работать нормально, но если я перейду на другую сцену, а затем вернусь к первой сцене, игра все равно будет работать нормально. Тем не менее, если я играю в игру один раз, а затем нажмите кнопку, чтобы перейти на другую сцену, а затем вернуться к первой сцене, игра вылетает, когда я пытаюсь играть с ошибкой:Сценарий Sprite Kit разбивается после смены сцены на исходную сцену

*** 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]]; 
} 

Line приводящего к краху

+4

Какая линия вызывает крушение? Установили ли вы контрольную точку исключения, чтобы найти неисправный код? – Fogmeister

+0

Ой, извините, я забыл эту строку, я добавлю ее сейчас – SomeGuy

+0

Это не линия, вызывающая крушение. Это просто говорит вам, что приложение разбилось. Вам нужно добавить контрольную точку исключения. Это остановится на строке вашего собственного кода. – Fogmeister

ответ

0

Если вы на самом деле читать журнал ошибок, он говорит, что вы пытаетесь дважды добавить ребенка в свой код. Таким образом, он вылетает из строя. Запустите свой код и дважды проверьте это.

+0

Я знаю, что это вызывает ошибку, просто добавленный узел не имеет значения, все равно нулю. Поэтому я не знаю, что добавляется, что приводит к его сбою, когда он отлично работает, прежде чем менять сцены. Кроме того, он по-прежнему сбой, если я удалю всех детей до того момента, когда он сработает. – SomeGuy

0

Похоже, вы хотите уволить свою текущую сцену и перейти на новую сцену. Для этого вы можете [mySKView presentScene:nil];, а затем перейти на новую сцену.

 Смежные вопросы

  • Нет связанных вопросов^_^