我正在努力让我的精灵面孔跟随接触点移动,到目前为止我已经成功了。基本上,每当用户触摸屏幕时,我的精灵将旋转以面向触摸点,并朝向它移动。这是我的基本代码:
-(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]];
}
现在的问题是,由于这是UIPanGesture
,只要手指触摸屏幕,此方法就会持续运行。这实际上使旋转和移动非常不连贯,因为前一个动作总是被新的动作覆盖。
它不光滑流畅。我怎样才能让它顺利?我是否需要以某种方式延迟我的某些行为?任何想法都赞赏。感谢
答案 0 :(得分:4)
当您需要不断改变方向和动作时,请勿使用动作。操作对此不利,甚至可能导致您的对象在每帧停止/运行新操作时根本不移动。
相反,您必须逐帧计算对象的速度,并将该速度添加到该位置。从速度你也可以计算角度(方向也称为旋转)。
答案 1 :(得分:0)
使用CCSequence&在CCSequence对象中添加这2个动画。 并在您的Sprite中添加此CCSequence动画。
我希望这项工作对你有好处。