目前,我有一个游戏,其中一个对象决定了一个点。然后它计算到该点的路径并构造一个长CCMoveTo
动画以到达该点。使用这种方法,动画看起来非常流畅和连续。
我现在正试图利用定期调用的方法将这一方法分解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
每个动画结束时似乎都有延迟
有人知道如何解决这个问题吗?