Вы всегда можете добавить метод, чтобы указать, когда метод завершен, а затем переключить некоторый BOOL или что-то подобное, чтобы указать, что он не запущен, и поместить метод запуска, чтобы переключить BOOL, чтобы указать, что он запущен:
id actionMove = [CCMoveTo actionWithDuration:actualDuration
position:ccp(-target.contentSize.width/2, actualY)];
id actionMoveDone = [CCCallFuncN actionWithTarget:self
selector:@selector(spriteMoveFinished:)];
id actionMoveStarted = [CCCallFuncN actionWithTarget:self
selector:@selector(spriteMoveStarted:)];
[target runAction:[CCSequence actions:actionMoveStarted, actionMove, actionMoveDone, nil]];
Изменено с здесь.
В двух методах @selector:
-(void) spriteMoveStarted:(id)sender {
ccMoveByIsRunning = YES;
}
и
-(void) spriteMoveFinished:(id)sender {
ccMoveByIsRunning = NO;
}
где ccmoveByIsRunning - БУЛА, о которой я говорю.
РЕДАКТИРОВАТЬ : Как указал xus, на самом деле вы не должны этого делать и вместо этого использовать [self numberOfRunningActions]
, как указали другие.