+ (id) actionWithAnimation:CCAnimation *) a restoreOriginalFrame:(BOOL) b
это метод действия CCAnimate. Просто поставьте второй аргумент в NO
В вашем случае
CCAction *goldenExplosionAction = [CCAnimate actionWithAnimation:ani restoreOriginalFrame:NO];
Чтобы понять, что анимация была закончена, создайте обратный вызов, который будет вызываться после анимации, например:
id animation = [CCAnimate actionWithAnimation: someAnimation];
id callback = [CCCallfunc actionWithTarget: targetObject selector: @selector(mySelector)];
id sequence = [CCSequence actions: animation, callback, nil];
[mySprite runAction: sequence];
Таким образом, после завершения анимации будет вызван метод mySelector объекта targetObject.
Если вы хотите передать некоторые данные через обратный вызов и / или отправителя, используйте действия CCCallFuncN или CCCallFuncND