2014-09-16 8 views
0

Я пытаюсь создать анимацию спрайта персонажа, стреляющего из пистолета в Cocos2d. Я изо всех сил пытаюсь найти способ создания экземпляра и начать перемещение спрайта пули в соответствующий кадр анимации загрузки/цели/огня моего персонажа.Cocos2d синхронизирует спрайт с анимацией другого спрайта

Например, мой персонаж проходит через 12 кадров анимацию стрелять пистолет и пуля должна быть выпущена в кадре 7.

Может кто-нибудь помочь?

Заранее спасибо Al

ответ

0

Вот один из способов сделать это, подобный сценарий в игре я developping. Я хочу, чтобы на кадре 10 из 16 планировал метод «attackTurnAround» (анимация анимации урона, повреждение жертвы и т. Д.). Не тратьте время на «уведомления о кадрах», иногда кадр будет пропущен, и вы не получите никаких уведомлений.

предостережение: выбор времени. Прежде чем попасть в этот момент, я предварительно загружу ВСЕ, что произойдет в «attackTurnAround», а именно: поврежденная (или мертвая) анимация, анимация урона, звукFx, который будет слышен, когда меч попадет на кадр 10 и т. Д. .....

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.]; 
+0

С уважением, YvesLeBorg, оговорка о времени, являющемся ключевым (а не использование номера кадра анимации), имеет смысл. Я отдам его. Приветствия! – Alan