Вот один из способов сделать это, подобный сценарий в игре я 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.];
С уважением, YvesLeBorg, оговорка о времени, являющемся ключевым (а не использование номера кадра анимации), имеет смысл. Я отдам его. Приветствия! – Alan