Cocos2d:在另一个(父?)CCLayer中从一个CCLayer调用函数

Han*_*hal 2 function cocos2d-iphone cclayer

你好真棒的开发社区.我已经寻找了几天的答案,似乎无法找到一个句柄,所以决定自己发布Q.

我有一个游戏,有选择项目的菜单.菜单可以有2 - > 30+项,因此需要滚动.还有类别菜单,单击某个项目时,将显示包含该类别项目的新菜单.

我认为最有效的方法是在专用层上创建菜单所需的所有元素.问题是我不知道如何在包含菜单的CCLayer中调用主游戏场景中定义的addNewItems:itemsArray函数.

或者,我应该只使用一层?有点乱,难以将多个项目放在一起.

非常感谢你的任何帮助 - 或指着我明确的教程或如何做到这一点的例子,因为我真的找不到任何帮助.

下面是我要创建的内容的流程图.

谢谢!!

Hanaan

替代文字

Han*_*hal 5

终于得到了David994A的答案(cocos2d论坛)

答案是将图层传递给它的父图层我初始化CCLayer,如下所示:

- (id)initWithParent:(CCLayer*)parentLayer;

并称之为:

ItemsMenuLayer*tempLayer = [[ItemsMenuLayer alloc] initWithParent:self];

然后,从CClayer内部我可以调用任何父级的图层函数,如下所示:

[parentLayer functionName];