Завершение приложения - PullRequest
0 голосов
/ 24 декабря 2010

Это функция, которую я использую в своем коде:

 -(id) initFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite
        selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite
          activeSprite:(CCNode<CCRGBAProtocol>*)activeSprite
        disabledSprite:(CCNode<CCRGBAProtocol>*)disabledSprite
                  name:(NSString*)name
                target:(id)target selector:(SEL)selector

{ if ((self = [super initFromNormalSprite: normalSprite selectedSprite: selectedSprite disabledSprite: disabledSprite цель: целевой селектор: селектор])) { self.activeImage = activeSprite; self.name = name;

    // TODO, create an addSpriteFrameByName extension
    CCSpriteFrameCache* fcache = [CCSpriteFrameCache sharedSpriteFrameCache];
    NSString* glowName = @"frames-glow.png";

    if([fcache spriteFrameByName: glowName]) {
    } else {
        CCTexture2D* glowTex = [[CCTexture2D alloc] initWithImage: [UIImage      imageNamed:glowName]];
        CCSpriteFrame* spriteFrame = [[CCSpriteFrame alloc] initWithTexture:glowTex
        rect:CGRectMake(0,0,glowTex.pixelsWide,glowTex.pixelsHigh)];
       //offset: ccp(0,0)];
        [fcache addSpriteFrame:spriteFrame name:glowName];
       [spriteFrame release];
        [glowTex release];
    }
    self.glow = [CCSprite spriteWithSpriteFrameName:glowName];
    self.showGlow = true;
}
return self;
}

Работает нормально, но в симуляторе вылетает следующее:

2010-12-24 23: 22: 48.417 PanelsExample [8967: 207] * Ошибка подтверждения в - [NMPanelMenuItem addChild: z: tag:], / Users / aeshverma / Загрузки / jashmenn-shape-Panel- bcf4e74 / cocos2d / CCNode.m: 360 2010-12-24 23: 22: 48.430 PanelsExample [8967: 207] * Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «дочерний элемент уже добавлен. Он не может быть добавлен снова '

пожалуйста, помогите мне.

Спасибо

1 Ответ

0 голосов
/ 09 января 2011

не уверен, но похоже, что вы могли бы добавить текстуру несколько раз в CCSpriteFrameCache.Лучший способ выявить эту проблему - запустить игру с отладкой, а когда она «сломается» ... запустить окно отладчика, и вернуться назад, где находится ваш код, и определить строку кода, которая вызывает проблему, - затемработать оттуда.

Это также кажется неправильным использованием пользовательского класса, но это обсуждение другой темы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...