我有一个“场景”类,添加了几个图层。我想在游戏结束时添加最后一层(以显示不同的分数)(因此该图层将使用委托调用Scene类,并且Scene类应添加此新图层:“LevelCompleteLayer”)。代表方法没有收到呼叫,从层到场类
但是Scene类中的方法没有收到调用。你知道为什么吗?其他代表(在图层之间)工作正常,但是这一层(从图层到场景)没有。
下面的代码:
//in Level1Scene.h :
@interface Level1Scene : CCScene <CompleteLayerDelegate>{
//in Level1Scene.mh :
@implementation Level1Scene
@synthesize levelComplete;
-(void)showLevelCompleteLayer {
CCLOG(@"delegateCompleteLayer showLevelCompleteLayer!!!");//does not show up
[self addChild:levelComplete z:5000];//is not added
}
-(id)init {
if ((self = [super init])) {
ScoreLayer *scoreLayer = [ScoreLayer node];
layer = [[Level1Layer alloc] initWithBackgroundImage:background.backgroundImage];
levelComplete = [[LevelComplete alloc] init];
layer.delegate = scoreLayer;//works fine
layer.delegateCompleteLayer = self; //does not respond
scoreLayer.delegate = layer;//works fine
//...
}
return self;
}
//in Level1Layer.m :
[delegateCompleteLayer showLevelCompleteLayer];
//in GameProtocols.h :
@protocol CompleteLayerDelegate
-(void)showLevelCompleteLayer;
@end
感谢您的帮助
谢谢塞尔吉奥,我编辑了一些图片我的文章,你可以看看吗?感谢您的帮助 – Paul
感谢塞尔吉奥,这正是您所说的,我称它为“无”的代表,现在它可以工作。谢谢 – Paul