поэтому я создал меню паузы,
- (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]];
}
поэтому, как только вы нажимаете эту кнопку, она работает и возвращается в главное меню, но затем, когда я нажимаю кнопку «играть» из mainMenu
и захожу в игру и нажимаю кнопку паузы, я получаю эту ошибку: child already added. It can't be added again
... это не так происходит, если я перезапускаю игровую сцену из меню паузы, происходит только тогда, когда я захожу в игру из главного меню после загрузки игры.
exitMenu
я не удалил дочерний элемент pauseMenu, поэтому, когда игра снова запустилась, дочерний элемент уже был там. ваше решение исправит это, а также просто удалит ребенка. 04.10.2011