スプライトで runAction を実行して位置に移動しています。
[[crBalls[cb.count] getball] runAction:[CCSequence actions:[CCMoveTo actionWithDuration:timeToTravel position:ccp(xIntercept,yIntercept)],[CCMoveTo actionWithDuration:0.05 position:FD],nil]];
スプライトが目的の位置(FD)に移動したら、その時点で関数を呼び出したいと思います。現在、上記のアクションが実行を完了するのにかかる時間である「timeToTravel」の遅延後に呼び出されるようにセレクターをスケジュールしています。
[self schedule:@selector(placeThatDamnBall) interval:timeToTravel+0.05];
-(void) placeThatDamnBall
{
[self unschedule:@selector(placeThatDammBall)];
[self ballPlacedIn:FD.x :FD.y :cb.type : cb.count];
}
しかし、これは完全に信頼できるわけではなく、スプライトが宛先に到達する前に関数が呼び出されるというまれなケースで問題が発生する可能性があります。スプライトが実際に目的地に到達したら、セレクターを呼び出さずに関数を呼び出すことができる方法はありますか?
ありがとう