Я выполняю runAction на спрайте для перемещения в позицию.
[[crBalls[cb.count] getball] runAction:[CCSequence actions:[CCMoveTo actionWithDuration:timeToTravel position:ccp(xIntercept,yIntercept)],[CCMoveTo actionWithDuration:0.05 position:FD],nil]];
Как только спрайт перемещается в нужную позицию (FD), я хочу вызвать функцию в это время. Сейчас я планирую вызвать селектор, который будет вызван после задержки 'timeToTravel', которая является временем, затрачиваемым вышеуказанным действием, чтобы завершить выполнение (я использую планировщик вместо executeSelector, поскольку селектор выполнения более подвержен проблемам)
[self schedule:@selector(placeThatDamnBall) interval:timeToTravel+0.05];
-(void) placeThatDamnBall
{
[self unschedule:@selector(placeThatDammBall)];
[self ballPlacedIn:FD.x :FD.y :cb.type : cb.count];
}
Но это не совсем надежно и может вызвать проблему в редком случае, когда функция может быть вызвана до того, как спрайт достигнет места назначения. Есть ли способ избежать вызова селектора и вызова функции после того, как спрайт действительно достигнет пункта назначения?
Спасибо