【问题标题】:Coco2d MoveBy at Bezier SpeedCocos2d 以贝塞尔速度移动
【发布时间】:2016-02-29 17:18:55
【问题描述】:

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

类似:

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

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

【问题讨论】:

  • 更准确地说:您需要自定义遍历速度,而不是“贝塞尔速度”。基于控制变量的线性增量,贝塞尔曲线只有一个遍历速度函数,所以如果你在谈论“缓动”,这与真正的贝塞尔遍历速度和恒定速度一样不同.
  • 是的,我说的是缓动,但不是内置的 EaseIn、EaseOut、EaseInOut 函数。

标签: c++ performance cocos2d-x bezier path-finding


【解决方案1】:

事实证明,为此有一个内置函数。 (就像我想的那样——我就是找不到。-_-)

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

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

duration 是完成路径所需的时间。 position 是路径的终点。 height 是路径的顶点,jump 通常应该设置为 1 以获得像我这样的效果,但增加它会给你一个“弹跳”效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多