0

我正在尝试制作我的精灵脸并在它移动时跟随一个接触点,到目前为止我已经成功了。基本上,每当用户触摸屏幕时,我的精灵都会旋转以面向触摸点,并朝它移动。这是我的基本代码:

-(void)handlePan:(UIPanGestureRecognizer *)recognizer{

    //calculate tapPosition + angle, then rotate the sprite and move it to the tapPosition:

    [fish runAction:[CCRotateTo actionWithDuration:0 angle:angle]];
    [fish runAction:[CCMoveTo actionWithDuration:0.8 position:tapPosition]];
}

现在的问题是,因为这是在 a 中UIPanGesture,所以只要手指触摸屏幕,此方法就会不断运行。这实际上使旋转和移动非常不稳定,因为以前的动作总是被新的动作覆盖。

它不光滑和流畅。我怎样才能使它顺利?我是否需要以某种方式延迟我的一些行动或什么?任何想法表示赞赏。谢谢

4

2 回答 2

4

当你需要不断地改变方向和运动时,不要使用动作。动作对此不利,甚至可能导致您的对象在每帧停止/运行新动作时根本不移动。

相反,您必须逐帧计算对象的速度并将该速度添加到位置。您还可以根据速度计算角度(方向也称为旋转)。

于 2012-05-17T10:38:23.640 回答
0

使用 CCSequence 并在 CCSequence 对象中添加这 2 个动画。并在您的 Sprite 中添加此 CCSequence 动画。

我希望这项工作对你有好处。

于 2012-05-17T10:33:22.397 回答