Coco2d MoveBy 以贝塞尔速度行驶

Coco2d MoveBy at Bezier Speed

本文关键字:速度 MoveBy Coco2d      更新时间:2023-10-16

我想以可变速度沿着路径移动精灵。理想情况下,我想以(不同的)贝塞尔速度沿着贝塞尔路径移动,这意味着它会沿着路径缓和并且不会以恒定速度移动。有没有办法做到这一点?

像这样:

ccBezierConfig path; // With it's points
ccBezierConfig speed; // With it's points
BezierBy::create(duration, path, speed);

显然这是伪代码,但希望这是有道理的。我想以贝塞尔的速度表演一个移动的动画。

事实证明,有一个内置函数。(正如我想的那样 - 我只是找不到它。

对于将来可能偶然发现这个的任何人(或者,你知道,我在 6 个月内),我使用了 JumpBy/JumpTo。

JumpBy::create(float duration, const cocos2d::Vec2 &position, float height, int jumps)

duration是完成路径所需的时间。position是路径的终点。height是路径的波峰点,对于像我这样的效果,jump通常应设置为 1,但增加它会给你一个"弹跳"效果。