我有一个小应用程序,同时具有CCLayer视图和UIView。这很好。我只是尝试向该层的引用发送消息,以便Cocos2d CCLayer可以接收该消息。这似乎很简单,我认为应该有效。我创建了一个名为“cocos”的CCLayer指针作为iVar,并在创建cocos视图后将其设置为:
[[CCDirector sharedDirector] runWithScene: [HelloWorldLayer scene]];
CCScene*tempscene=[[CCDirector sharedDirector] runningScene];
cocos=[tempscene.children objectAtIndex:0];
由于这是一个只有一个场景和图层的简单小测试应用程序,它应该可以工作。但是iVar cocos
没有响应HelloWorldLayer
中的任何公共方法。知道为什么吗?
更新:我通过简单地重新安排代码来实现它。不确定为什么它以这种方式工作而不是先前的方式:
CCScene*tempscene=[HelloWorldLayer scene];
[[CCDirector sharedDirector] runWithScene: tempscene];
cocos=[tempscene.children objectAtIndex:0];
答案 0 :(得分:0)
第一段代码不适合你的原因是runWithScene:
没有立即将runningScene
的{{1}}属性设置为CCDirector
。< / p>