0

現在、Objective-c で作業しています。

スプライトがたどるパスを描いていますが、すべて正常に動作しているように見えますが、どこにも答えられていないように見える質問が1つありました。

ベジエの最初の 2 つのポイントは、3 番目のポイントに関連してかなり近くにあり、スプライトがこのパスに沿ってアニメーション化されると、最後に突然停止してアニメーションに緩和されているように見えます。

これを制御する方法はありますか?アニメーションを 1 つの一貫した速度にするか、緩和することができますか?

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];

rate 値をいじって、最終的に何が自分にとって最もよく見えるかを確認したいと思うでしょう。CCEaseOut次のような他のオプションをいくつか試してみる必要があるかもしれませんCCEaseSineOut

リンク: Cocos2d Ease アクション ガイド

于 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 に答える