поэтому я создал меню паузы,
- (void) reset {
CCSprite * backg = [CCSprite spriteWithFile:@"noise.png"];
backg.position = ccp(480/2, 320/2);
[pauseMenu addChild:backg];
CCLabelBMFont *restartLabel = [CCLabelBMFont labelWithString:@"Restart" fntFile:@"good_dog_plain_32.fnt"];
restartLabel.color = ccc3(68,136,168);
CCMenuItemLabel *restartItem = [CCMenuItemLabel itemWithLabel:restartLabel target:self selector:@selector(restartMenu)];
restartItem.position = ccp(0, 40);
CCLabelBMFont *mainMenuLabel = [CCLabelBMFont labelWithString:@"Main Menu" fntFile:@"good_dog_plain_32.fnt"];
mainMenuLabel.color = ccc3(68,136,168);
CCMenuItemLabel *mainMenuItem = [CCMenuItemLabel itemWithLabel:mainMenuLabel target:self selector:@selector(exitMenu)];
mainMenuItem.position = ccp(0, -40);
CCLabelBMFont *resumeLabel = [CCLabelBMFont labelWithString:@"Resume" fntFile:@"good_dog_plain_32.fnt"];
resumeLabel.color = ccc3(68,136,168);
CCMenuItemLabel *resumeItem = [CCMenuItemLabel itemWithLabel:resumeLabel target:self selector:@selector(resumeMenu)];
CCMenu *menu = [CCMenu menuWithItems:resumeItem,restartItem,mainMenuItem, nil];
menu.position = ccp(480/2,320/2);
[pauseMenu addChild:menu z:1];
[self.hero sleep];
[self addChild:pauseMenu];
}
это меню создается в моей игровой сцене, поэтому всякий раз, когда пользователь нажимал кнопку паузы, она появляется, теперь у меня есть другая сцена под названием mainMenu
, и вы можете перейти к mainMenu
из меню паузы, и я использовал этот код:
- (void) exitMenu {
[[CCDirector sharedDirector] replaceScene:[mainMenu scene]];
}
поэтому, когда вы нажимаете эту кнопку, она работает и возвращается в главное меню, но затем, когда я нажимаю кнопку «play» из mainMenu
и захожу в игру, нажимаю кнопку паузы, я получаю эту ошибку: child already added. It can't be added again
... этого не происходит, если я перезагружаю игровую сцену из меню паузы, происходит только тогда, когда я захожу в игру из главного меню после загрузки игры.