2013-12-10 133 views
0

我有一个精灵,我添加到一个场景,并应用动画,但动画没有开始。 这里是代码,框架已经被添加到数组(explodeFrames),我可以单独看到框架,当我将它们应用到精灵。Cocos2d - 雪碧没有动画

CCSprite *expoSprite = [CCSprite spriteWithSpriteFrame:explosionFrames[0]]; 

expoSprite.position = bombSprite.position; 


CCAnimation *explosionAnimation = [CCAnimation animationWithSpriteFrames:explosionFrames]; 


[expoSprite runAction:[CCSequence actions:[CCAnimate actionWithAnimation:explosionAnimation],nil]]; 


[n addChild:expoSprite]; 

任何意见将不胜感激。

+0

你如何创建爆炸框?你是否在某处调用了stopAllActions,或者在一个循环中重新运行动画动作(即在预定选择器中的每一帧?) – LearnCocos2D

+0

这个explosionFrames是一个NSMutableArray,并且帧从CCSpriteBatchNode –

+1

添加到它你能发布实际的代码吗?以及上述代码的上下文,即它的功能是什么以及在何处或如何调用这个函数? – LearnCocos2D

回答

-1

首先,您应该在运行任何操作之前将小精灵添加为小孩。其次,你可以写

[expoSprite runAction:[CCSequence actions:[CCAnimate actionWithAnimation:explosionAnimation],nil]];

如果你要去的

[expoSprite runAction:[CCSequence actions:[CCAnimate actionWithAnimation:explosionAnimation],nil]];

0

,以添加一些序列或

[expoSprite runAction:[CCAnimate actionWithAnimation:explosionAnimation]];

,而不是你有重写onEntern“上课?

您是否记得打电话给[super onEnter]

-(void) onEnter 
{ 
    [super onEnter]; 
    //Other code 
} 

这实际上总是当我有一个节点没有运行操作的问题。

+0

或将sprite作为子节点添加到未处于“正在运行”状态的节点。在这种情况下,OP似乎正在使用CCSprite,因此除非基础cocos2d类被修改,否则我怀疑onEnter被适当调用。 – YvesLeBorg