У меня есть игра, которая отлично работает и находится в магазине приложений. Я делаю обновление, в котором я добавил другую сцену. Когда игра запустится, она все равно будет работать нормально, но если я перейду на другую сцену, а затем вернусь к первой сцене, игра все равно будет работать нормально. Тем не менее, если я играю в игру один раз, а затем нажмите кнопку, чтобы перейти на другую сцену, а затем вернуться к первой сцене, игра вылетает, когда я пытаюсь играть с ошибкой:Сценарий 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 приводящего к краху
Какая линия вызывает крушение? Установили ли вы контрольную точку исключения, чтобы найти неисправный код? – Fogmeister
Ой, извините, я забыл эту строку, я добавлю ее сейчас – SomeGuy
Это не линия, вызывающая крушение. Это просто говорит вам, что приложение разбилось. Вам нужно добавить контрольную точку исключения. Это остановится на строке вашего собственного кода. – Fogmeister