0

iOS 和 Cocos2d ( 2.x ) 的新手

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

例子:

  • 场景1,添加菜单
  • 场景 2,添加与场景 1 相同的菜单

我只看到了在初始化图层本身时如何初始化 CCMenu。您构建项目,然后将它们添加到 CCMenu 等等。

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

这有意义吗?

4

1 回答 1

1

您需要为每个场景使用不同的菜单实例,因此从技术上讲,您需要在每个场景中初始化一次。

但我认为您是在问“我怎样才能编写一次代码,然后在每个场景中重用该代码”。您需要创建某种可以重复使用的 CC 对象。这可以是 CCMenu、CCLayer 或任何最适合目的的子类。因此,您可以尝试以下方法:

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

然后在 .m 文件中,随意设置菜单。当您想将其包含在 Scene1 中时:

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

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

(您可以只扩展 CCMenu 而不是 CCLayer,但我个人更喜欢使用图层而不是菜单。这是个人选择的问题。)

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

于 2012-12-11T05:46:37.793 回答