ccspriteMenu中不同状态的sprite不能是同一个
Please help me out. I am able to build the code after many changes but it crashes in simulator. -(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 target:target selector:selector])) { 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; }
I find the problem in these line
CCSprite* pane2 = [CCSprite spriteWithFile:[NSString stringWithFormat: @"%@-panel.png", currentName]]; NMPanelMenuItem* menuItem2 = [[NMPanelMenuItem alloc] initFromNormalSprite:pane2 selectedSprite:pane2 activeSprite:pane2 disabledSprite:nil name:currentName target:self selector:@selector(levelPicked:)];
Try adding a different sprite to each state.
CCSprite* pane1 = [CCSprite spriteWithFile:[NSString stringWithFormat: @"%@-panel.png", currentName]]; CCSprite* pane2 = [CCSprite spriteWithFile:[NSString stringWithFormat: @"%@-panel.png", currentName]]; CCSprite* pane3 = [CCSprite spriteWithFile:[NSString stringWithFormat: @"%@-panel.png", currentName]]; CCSprite* pane4 = [CCSprite spriteWithFile:[NSString stringWithFormat: @"%@-panel.png", currentName]]; NMPanelMenuItem* menuItem2 = [[NMPanelMenuItem alloc] initFromNormalSprite:pane1 selectedSprite:pane2 activeSprite:pane3 disabledSprite:pane4 name:currentName target:self selector:@selector(levelPicked:)];
和ccAction一样,同一个ccAction只能一个持续运行,若想同时运行,用copy
ccPlace 等瞬间执行动作除外

浙公网安备 33010602011771号