В моей игре я запускаю две анимации, используя CCSpawn
, но она показывает только одну анимацию за раз. Что здесь не так? Вот мой код.Как запустить две анимации одновременно с тем же спрайтом?
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"walkcycle.plist"] ;
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"walkcycle.png"];
[heroWorldLayer addChild:spriteSheet];
NSMutableArray *runFrames = [NSMutableArray array];
for(int i = 1; i <= 11; ++i) {
CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Run_Anim00%02d.png", i]];
[runFrames addObject:frame];
}
id runAnim = [CCAnimation animationWithFrames:runFrames delay:1.0/22.0];
id runAnimate = [CCAnimate actionWithAnimation:runAnim restoreOriginalFrame:NO];
// _runAction = [CCRepeatForever actionWithAction:runAnimate];
// [heroBodySprite runAction:_runAction];
NSMutableArray *poofFrames = [NSMutableArray array];
for(int i = 1; i <= 10; ++i) {
CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Poof00%02d.png", i]];
[poofFrames addObject:frame];
}
id poofAnim = [CCAnimation animationWithFrames:poofFrames delay:1.0/20.0];
id poofAnimate = [CCAnimate actionWithAnimation:poofAnim restoreOriginalFrame:NO];
// id poofAction = [CCRepeatForever actionWithAction:poofAnimate];
// [heroBodySprite runAction:poofAction];
[heroBodySprite runAction:[CCRepeatForever actionWithAction:[CCSpawn actions:runAnimate, poofAnimate, nil]]];
оба кадра будут пытаться заменить текстуру спрайта, так что может быть вы получаете анимацию для poofAnimate. – Renaissance
да, вы получили это .... теперь, что я делаю ... – Gaurav
см. Я не уверен, будет ли это работать или нет, но попытайтесь сделать один CCSequence, который будет иметь задержку и poofAnimate. Дела будет ((1/20) - (1/22)) и запускает это действие с CCspawn с runAnimate и (delay и poofAnimate). Я не понимаю, почему кто-то пытается анимировать один единственный спрайт с двумя разными объектами spriteframes? – Renaissance