我有一个用cocos2d构建的iphone应用程序,需要从另一个类访问当前图层。我有一个HelloWorldLayer和一个Cannon,我需要从我的Cannon节点访问HelloWorldLayer。我如何访问HelloWorldLayer?我已经尝试过如下创建我的图层的静态实例,但它添加了我似乎无法解决的dealloc问题。如何从另一个类访问我当前的图层?请帮帮忙?
static HelloWorldLayer* helloWorldLayerInstance;
答案 0 :(得分:3)
您始终可以通过获取当前正在运行的场景,然后获取该场景的子节点(通常是一个或多个图层)来随时访问当前图层。因此,要获得当前活动的图层,您需要类似......
CCArray* layers = [[CCDirector sharedDirector] runningScene].children
然后,您可以遍历子项以获取所需的图层。
P.S。为什么需要将hellowWorldLayerInstance作为静态变量?这可能是一个单独的问题/讨论的原因,但我很好奇。
答案 1 :(得分:0)
Rob的答案非常适合任何场景。
但如果您将Cannon
作为孩子添加到HelloWorldLayer
,则可以通过访问HelloWorldLayer
属性从Cannon
内部parent
转到// somewhere inside @implementation Cannon
HelloWorldLayer *layer = (HelloWorldLayer *)self.parent;
例如:
{{1}}