두 번째 다른보기 컨트롤러는 첫 번째에 SKScene
입니다. 거기서 우리는 게임 자체를 발견하고 두 번째에는 "Replay"버튼으로 점수를 찾습니다. 게임이 끝나면 장면을 삭제하고 "Replay"를 클릭하면 alloc
과 init
가 다시 나타납니다. 내 문제는 특정 SKSpriteNode
이 게임이 종료되었을 때 회전하여 삭제하고 다시 설정 한 다음 해당 장면으로 돌아 가면 장면을 삭제하기 전과 동일한 각도로 회전 된 상태로 유지된다는 것입니다. -initWithSize
이 제대로 호출되었으므로 그 이유가 확실하지 않습니다. 제 질문은 SKScene
을 다시 설정하여 게임을 처음 실행했을 때와 동일한 방법이 있는지입니다. 감사!SpriteKit의 장면 재설정
3
A
답변
3
예, 처음부터 장면을 생성하고 불러내는 방법을 만듭니다. 속성 인 객체가있는 경우 장면 생성 방법을 호출하기 전에 부모에서 객체를 제거하십시오.
예 :
-(id)initWithSize:(CGSize)size {
[super initWithSize:size];
[self startNewGame];
return self;
}
-(void)startNewGame {
//all your scene configs here
}
-(void)buttonThatsCalledOnRestartClick {
[self startNewGame];
}
다시 시작할 때 현장에서 제거하지 않는 때문에 같은 자리에 스프라이트를보고있는 이유입니다. 아마도 장면을 완전히 다시 빌드해야하기 때문에 장면에서 모든 오브젝트를 제거한 다음 "startNewGame"메소드를 다시 호출해야합니다. 현장에서 모든 개체를 제거
예 : 장면의`dealloc` 방법
for (SKNode* node in self.children) {
[node removeFromParent];
}
+1
SKNode 클래스의 removeAllChildren 메서드를 사용하여 씬에 하나의 컴파운드 레이어를 사용하고 모든 자식 노드를 삭제하는 것이 좋습니다. – AndrewShmig
관련 문제
- 1. SpriteKit의 끝없는 스크롤 배경
- 2. SpriteKit의 클래스에서 오디오 재생
- 3. SpriteKit의 GameScene으로 다시 전환하려면 어떻게해야합니까?
- 4. Spritekit의 iAds 숨기기/표시
- 5. SpriteKit의 사인파 모션
- 6. SpriteKit의 적을위한 AI
- 7. SpriteKit의 앱 구매 통합
- 8. SpriteKit의 "Collision Map"
- 9. Spritekit의 크기 조정
- 10. Spritekit의 끈적한 PhysicsBodies
- 11. SpriteKit의 노드를 통해 터치하십시오.
- 12. SpriteKit의 가속도계가 작동하지 않습니다.
- 13. SpriteKit의 삽입 광고
- 14. Spritekit의 장면을 swift로 대체하십시오.
- 15. SpriteKit의 스프라이트 각도 설정
- 16. SpriteKit의 모션 트레일 효과?
- 17. SpriteKit의 GK 리더 보드?
- 18. SpriteKit의 AdMob 삽입 광고
- 19. 장면
- 20. iAd Banner가 SpriteKit의 화면을 엉망으로 만듭니다.
- 21. cocos2d 장면/장면 전환 제거
- 22. 3D 장면 내의 3D 장면
- 23. .png 애니메이션 spritekit의 성능이 느림
- 24. Spritekit의 게임 센터 리더 보드
- 25. SpriteKit의 랜덤 좌표에 노드를 생성합니다.
- 26. Swift를 사용하여 SpriteKit의 델타 계산하기
- 27. Xcode SpriteKit의 추가 인수 'forReadingWithData'
- 28. 플렉스 3 장면 다시 만들기
- 29. 조건문 극적 장면 초보자로서 극적 장면
- 30. Direct3D 장면 상단의 QtQuick 2.0 장면
넣어'NSLog'. 네 장면이 할당 해제되지 않은 것 같아. –
'presentScene'을 사용하여 간단히 장면을 다시 불러올 수 있습니다. – ZeMoon
@AndreyGordeev 방금 시도해 본 결과'dealloc' 메서드가 호출되고 있습니다. –