我当前正在尝试访问另一个文件上的函数(更精确的说是另一个层)。不存在功能
两个图层都在场景中。
第三层是试图从第一层的功能...
这里的IM如何这样做:
这是我在现场scene.h
#import "firstLayer.h"
#import "secondLayer.h"
#import "thirdLayer.h"
@interface myScene : CCScene
{
// custom instance vars here...
}
@end
以下是我投我在场景中的场景
-(id)init {
self = [super init];
if(self != nil){
firstLayer *firstLayerz = [firstLayer node];
[firstLayerz setTag:111];
[self addChild:firstLayerz z:0];
secondLayer *secondLayerz = [secondLayer node];
[secondLayer setTag:112];
[self addChild:secondLayer z:2];
thirdLayer *thirdLayerz = [thirdLayer node];
[thirdLayerz setTag:113];
[self addChild:thirdLayerz z:4];
下面是我如何在thirdLayer.m中投射函数
#import "scene.h"
@implementation thirdLayer.m
-(id)init {
self = [super init];
if(self != nil){
firstLayer* firstLayerz = (firstLayer*)[self.parent getChildByTag:111];
[firstLayerz functionNeeded];
}
这里的functionNeeded在firstLayer.m(右下方的init(
-(void)functionNeeded {
NSLog(@"inside fnnction needed");
}
过程中,日志不显示的...
我做firstLayer.h
适当的投@interface firstLayer : CCLayer {
}
-(void)functionNeeded;
@end
谢谢你的时间和帮助!
哪一部分是C++? –
是首先Layerz零?如果是这样,请检查self.parent是包含第一层而不是其他节点的节点(也许是自己) – LearnCocos2D
我想你会从self.parent得到错误类型的对象 –