現在、オブジェクトが移動するポイントを決定するゲームがあります。次に、そのポイントへのパスを計算し、そのポイントCCMoveTo
に到達するための 1 つの長いアニメーションを作成します。この方法では、アニメーションは非常に滑らかで連続的に見えます。
私は現在、定期的に呼び出されるメソッドを利用して、これCCMoveTo
を複数に分割しようとしています。これを行うのは、オブジェクトが通過するパスの各ノードで注意散漫になる可能性があり、オブジェクトがそれに基づいて動作できるようにするためです。だからこれは私がやっていることです:CCMoveTo
update
- (void) update: (ccTime) dt
{
if(![self isWalking]){
CGPoint nextNode = [_path objectAtIndex:(_currentPathIndex%[_path count])];
_currentPathIndex++;
NSMutableArray *actions = [[NSMutableArray alloc] init];
[actions addObject:[CCCallBlockO actionWithBlock:^void(id obj) {
[(Monkey *) obj setIsWalking:NO];
} object:self]];
[self moveTo: nextNode withCallbacks: actions];
}
}
注:オブジェクトが宛先ノードに完全に到達したときのコールバックとしてを設定isWalking
しました。NO
これにより、次に移動するノードを計算し、そのアニメーションを構築できます。runAction
これがないと、オブジェクトは進行中のCCMoveTo
アクションの途中でしようとします。この方法の問題点は、動きが滑らかで連続していないように見えることです。CCMoveTo
各アニメーションの最後にラグがあるようです
誰でもこれを修正する方法についての手がかりを持っていますか?