我有一個「場景」類,添加了幾個圖層。我想在遊戲結束時添加最後一層(以顯示不同的分數)(因此該圖層將使用委託調用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