2011-10-23 4 views
0

이 장면은 내 개요 장면,이 장면에서는 자기를 레이어로 추가하고 MainMenu 레이어를 추가합니다.다른 레이어의 장면에서 레이어를 어떻게 제거합니까? (Cocos2d)

개요 레이어는 플레이어에 대한 몇 가지 통계를 보여주고 메뉴 레이어가 맨 위에 표시됩니다. 이제 플레이어가 메뉴에서 메뉴 점을 클릭하면 개요 레이어를 다른 레이어로 변경하려고합니다.

하지만 문제는 MainMenu 클래스에서 overviewscene 레이어를 제거 할 수 없다는 것입니다.

:: 업데이트 ::

난 내가 시도 것을, 내가 몇 가지 코드를 인쇄 할 수 있도록 믿을. 이것은 내 MainMenuLayer

CCMenuItemFont menu_overview = [CCMenuItemFont itemFromString:@"Overview" target:self.parent selector:@selector(test)]; 

이 층 내 클래스의 권리를 추가되었을 때 부모가 내 overviewScene 것부터입니까? overviewScene

-(void)test { 
// CCScene *scene =[[CCDirector sharedDirector] runningScene]; 
// CCLayer *parentz = (CCLayer) self.parent; 
//[[scene removeChild: cleanup:YES]; 
[[OverviewScene node] removeFromParentAndCleanup:YES]; 
} 

답변

0

에서

은 "개요", 자식으로 추가 표시하려는 새로운 층과 "MAINMENU"레이어가 부모 장면이하는 것이 작업을 수행하는 올바른 방법 레이어. 이렇게하면 다음과 같이 간단히 할 수 있습니다.

[self removeChild:overviewLayer]; // overviewLayer is a reference to overview layer 
[self addChild:otherLayer tag:kYourTag z:yourZValue]; // otherLayer is the new layer you want added, mind the z index 

계층 구조를 유지하기 위해 각 계층의 z 색인을 올바르게 유지하면 문제가 해결됩니다.

+0

안녕하세요 code_burgar, 나는 이것을 시험해 보았습니다. 몇 가지 코드를 인쇄 해 보겠습니다. 내 MainMenuLayer에서 가져온 것임 CCMenuItemFont * menu_overview = [CCMenuItemFont itemFromString : @ "개요"대상 : self.parent 선택기 : @selector (테스트)]; 부모님이이 레이어가 저 클래스에 추가되었으므로 부모님이 내 overviewScene이됩니까? 개요에서 - (무효) 테스트 { // CCScene * scene = [[CCDirector sharedDirector] runningScene]; // CCLayer * parentz = (CCLayer *) self.parent; // [[장면 removeChild : 정리 : 예]; [[OverviewScene node] removeFromParentAndCleanup : YES]; } – MartinElvar

+0

죄송합니다. 저는 여기에 새로운 사람입니다. 내 텍스트의 의견을 더 잘 기입 할 수 없습니까? – MartinElvar

+0

이 아니라면 질문을 업데이트해야합니다. 그래서 논의가있는 포럼이 아닙니다. – LearnCocos2D

관련 문제