2014-05-14 2 views
0

게임이 멋지며 앱 스토어에 있습니다. 나는 다른 장면을 추가 한 업데이트를 만들고 있습니다. 게임이 시작될 때 여전히 정상적으로 작동하지만 다른 장면으로 변경 한 다음 첫 번째 장면으로 돌아 가면 게임이 제대로 작동합니다. 그때 한 번 게임을 플레이하는 경우에는 다른 현장으로 이동 한 후 첫 장면으로 돌아가 버튼을 눌러 게임 충돌 나는 오류를 재생하려고하면장면을 원래 장면으로 변경 한 후 충돌하는 스프라이트 키트 게임

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

라인은 실제로 로그 읽기 오류 경우가

+4

충돌을 일으키는 라인은 무엇입니까? 예외 코드를 설정하여 충돌하는 코드를 찾았습니까? – Fogmeister

+0

아, 죄송합니다. 그 줄을 잊어 버렸습니다. 지금 추가하겠습니다. – SomeGuy

+0

이것은 사고의 원인이되는 라인이 아닙니다. 이것은 앱이 추락했다는 것을 알려주는 것입니다. 예외 중단 점을 추가해야합니다. 이것은 당신 자신의 코드 라인에서 멈출 것이다. – Fogmeister

답변

0

충돌하는 원인이 코드에 어딘가에서 자식을 두 번 추가하려고한다고 말합니다. 따라서 충돌을 야기합니다. 코드를 실행하고이를 다시 확인하십시오.

+0

그게 오류의 원인인지 알았습니다. 추가되는 노드에는 아무 가치가 없습니다. 모든 것이 nil입니다. 따라서 장면을 변경하기 전에 제대로 작동 할 때 충돌이 발생하는 원인을 추가하는 것이 무엇인지 알 수 없습니다. 또한 충돌이 발생하기 전에 모든 어린이를 제거하면 충돌이 발생합니다. – SomeGuy

0

현재 장면을 닫고 새 장면으로 이동하려는 것처럼 들립니다. 그렇게하려면 [mySKView presentScene:nil];을 수행 한 다음 새 장면으로 이동하십시오.

관련 문제