我想以可变速度沿路径移动精灵。理想情况下,我想以(不同的)贝塞尔速度沿着贝塞尔路径移动,这意味着它沿着路径缓和并且不会以恒定速度移动。有没有办法做到这一点?
就像是:
ccBezierConfig path; // With it's points
ccBezierConfig speed; // With it's points
BezierBy::create(duration, path, speed);
显然这是伪代码,但希望这是有道理的。我想以贝塞尔速度执行移动动画。
我想以可变速度沿路径移动精灵。理想情况下,我想以(不同的)贝塞尔速度沿着贝塞尔路径移动,这意味着它沿着路径缓和并且不会以恒定速度移动。有没有办法做到这一点?
就像是:
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 以获得像我这样的效果,但增加它会给你一个“弹跳”效果。