相同的CCMenu添加到多个场景

时间:2012-12-11 03:42:00

标签: ios cocos2d-iphone ccmenuitem ccmenu

新手到iOS和Cocos2d(2.x)

好的我想创建一个菜单对象并从每个新场景中调用它。

示例:

  • Scene1,添加菜单
  • Scene2,添加与Scene1相同的菜单

我刚刚看到当你初始化Layer本身时如何初始化CCMenu。您构建项目,然后将它们添加到CCMenu,依此类推。

如何初始化CCMenu一次,然后将其添加到我碰巧看到的场景?因此,如果我正在查看Scene1或Scene2,它仍然是相同的菜单。

这有意义吗?

1 个答案:

答案 0 :(得分:1)

每个场景都需要一个不同的菜单实例,所以从技术上讲,每个场景需要初始化一次。

但我认为你在问“如何编写代码一次,然后在每个场景中重复使用该代码。”您需要创建一些可以重用的CC对象。这可能是CCMenu,CCLayer或其他最适合的目的的子类。所以你可以试试像:

@interface MyMenuLayer : CCLayer {
  CCMenu *myMenu;
}
@end

然后在.m文件中,根据需要设置菜单。如果要在Scene1中包含它:

MyMenuLayer *menu = [MyMenuLayer node];
[self addChild:menu];

您可以在Scene2中使用完全相同的代码。

(你可以扩展CCMenu而不是CCLayer,但我个人更喜欢使用Layers而不是Menus。这是个人选择的问题。)

很难用你问题中的信息给出一个非常确定的答案,但我希望这会让你走上正确的道路。