0

目前在 Objective-c 中工作。

我正在为我的精灵绘制一条路径,这一切似乎都很好,但我只有一个问题似乎在任何地方都没有得到回答。

我在贝塞尔曲线中的前两个点相对于第三个点非常接近,当我的精灵沿着这条路径进行动画处理时,它似乎在动画结束时突然停止。

有没有办法控制这个我想让动画保持一致的速度或者可能被缓和?

id bezierForward = [CCBezierTo actionWithDuration:totalDistance/300.f bezier:bezier];
[turkey runAction:bezierForward];
4

2 回答 2

2

试试这个:

id bezierForward = [CCBezierTo actionWithDuration:totalDistance/300.f bezier:bezier];
id easeBezierForward = [CCEaseOut actionWithAction:bezierForward rate:2.0]
[turkey runAction:easeBezierForward];

您将希望使用速率值来查看最终对您来说看起来最好的东西。您可能需要尝试其他一些CCEaseOut选项,例如CCEaseSineOut

链接:Cocos2d 简易操作指南

于 2012-06-18T22:52:50.237 回答
0

根据文档,可能应该是这样的:

id bezierForward = [CCEaseOut actionWithDuration:totalDistance/300.f bezier:bezier];
[turkey runAction:bezierForward];

如文档中所述:

变化

CCEaseIn:开始加速

CCEaseOut:加速结束

CCEaseInOut:开始/结束时的加速度

于 2012-06-18T22:14:38.107 回答