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

Function Cocos2d:从一个CCLayer在另一个(父?)CCLayer中调用函数,function,cocos2d-iphone,cclayer,Function,Cocos2d Iphone,Cclayer,你好,真棒的开发者社区。 我已经寻找了好几天的答案,但似乎找不到答案,所以我决定自己发布Q 我有一个游戏,有菜单选择项目。 菜单可以有2->30+项,因此需要滚动。还有类别菜单,当单击某个项目时,将显示包含该类别项目的新菜单 我认为最有效的方法是在专用层上创建菜单所需的所有元素。 问题是我不知道如何从包含菜单的CCLayer调用主游戏场景中定义的addNewItems:itemsArray函数 或者,我应该只使用一层吗?有点凌乱,难以将多个项目移动到一起 非常感谢您的帮助,或者为我指明了一个清晰

你好,真棒的开发者社区。 我已经寻找了好几天的答案,但似乎找不到答案,所以我决定自己发布Q

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

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

或者,我应该只使用一层吗?有点凌乱,难以将多个项目移动到一起

非常感谢您的帮助,或者为我指明了一个清晰的教程的方向,或者如何做到这一点的示例,因为我真的找不到任何帮助

下面是我希望创建的流程图

谢谢

哈南


终于从David994A cocos2d论坛得到了答案

答案是向层传递一个指向其父层的指针 我按如下方式初始化CCLayer:

-id initWithParent:CCLayer*parentLayer

这样称呼它:

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

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


[父层函数名]

但是你到底把它们放在哪里呢?你能发布一个.h和.m的例子吗?很抱歉回复得太晚了。。。initWithParent是层的init方法ItemsMinuLayer*tempLayer=[[ItemsMinuLayer alloc]initWithParent:self];line正在场景中创建层的瞬间。在层的任何方法中,您都可以使用:[parentLayer functionName]从父级调用函数;