Как удалить слой со сцены, из другого слоя.(Cocos2d) - PullRequest
0 голосов
/ 23 октября 2011

Я получил эту сцену как мой обзор сцен, в этой сцене я добавил себя как слой и слой MainMenu.

Слой обзора показывает некоторую статистику об игроке, а слой меню отображается вверху.Теперь, когда игрок нажимает на пункт меню в меню, я хочу заменить слой обзора другим слоем.

Но проблема в том, что я не могу удалить слой обзорной сцены из класса MainMenu, это вообще возможно?

:: Update ::

Я верю в это, что я пытался, позвольте мне напечатать некоторый код.Это из моего MainMenuLayer

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

Родителем будет моя обзорная сцена, так как этот слой был добавлен в тот класс, верно?

Из обзораСцена

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

1 Ответ

0 голосов
/ 23 октября 2011

Правильный способ сделать это - иметь родительскую сцену с «обзором», новый слой, который вы хотите показать, и слои «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 каждого слоя для поддержания иерархии, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...