如何从另一个图层中删除场景中的图层。 (cocos2d的)

时间:2011-10-23 12:48:46

标签: iphone objective-c cocos2d-iphone

我得到了这个场景我的概述,在这个场景中我添加了self作为图层和MainMenu图层。

概览图层显示有关播放器的一些统计信息,菜单图层显示在顶部。现在当玩家点击菜单中的菜单点时,我想用另一层更改概览层。

但问题是,我似乎无法从MainMenu类中删除overviewscene图层,这是否可能?

:: Update ::

我相信我的尝试,让我打印一些代码。这来自我的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]; 
}

1 个答案:

答案 0 :(得分: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索引设置正确以维持层次结构,这将解决您的问题。