Cocos2d将精灵与另一个精灵的动画同步

时间:2014-09-16 19:07:42

标签: ios animation cocos2d-iphone

我正在尝试创建一个在Cocos2d中射击枪的角色的精灵动画。我正在努力找到一种方法来实例化并开始在我的角色的加载/目标/火焰动画的适当框架上移动子弹精灵。

例如,我的角色通过一个12帧的动画来发射他的枪,子弹应该在第7帧被释放。

有人可以帮忙吗?

提前致谢 人

1 个答案:

答案 0 :(得分:0)

这是一种做到这一点的方法,在我正在开发的游戏中的类似场景。我希望,在第16帧第10帧,安排一个'attackTurnAround'方法(动画损坏动画,伤害受害者等等)。不要在'帧通知'上浪费时间,有时候会跳过一个帧,最后你不会收到任何通知。

警告:时机是关键。在达到这一点之前,我预先加载'attackTurnAround'中会发生的一切,即受伤(或死亡)动画,伤害动画,当剑击中第10帧时将听到的soundFx等等.....

BattleAnimation *ba = [self attackerAttackAnination];
_attackerAttackSprite = ba.firstSprite;
[_attackerNode addChild:_attackerAttackSprite];
CCActionAnimate *anim     = [CCActionAnimate actionWithAnimation:ba.animation];
id              endAttack = [CCActionCallBlock actionWithBlock:^{

    [self endAttack];
}];
id              seq       = [CCActionSequence actions:anim, endAttack, nil];
_attackerAttackSprite.visible = YES;
_attackerIdleSprite.visible   = NO;
[_attackerAttackSprite runAction:seq];
[self scheduleOnce:@selector(attackTurnAround) delay:9. * ba.duration / 16.];