关于贝塞尔曲线(bezier)的问题请教

bezier 的动作只能使用3个坐标点的吗?
当我超过三个点的时候呢?(只有4个点的时候怎么做)

那就4个点用啊。

再加一个动作

我试过一次加4个点,一段贝塞尔曲线只能读前3个,第4个点会不触发

是前三个点为一个bezierTo,第四个点单独用吗?

var bezier1 = [cc.p(0,0) , cc.p(100,-100) , cc.p(200,200)];
var bezier2 = [cc.p(200,200) , cc.p(300,-300)];

是这样吗?

好像不行。这跟我理解的贝塞尔不太一样。我理解的贝塞尔是 4 个因子描述两个坐标。你有三个坐标应该用 8 个因子。

啊?是我理解错了吗。。

其实我是想用这个方法做一个类似S型移动的动作,现在暂时4个坐标点,后面会有5个坐标点、6个坐标点那样子。

或者有没有其他方法可以实现

试了一下 这种方法可以勉强实现(4个坐标点)

properties: {
ab: cc.Node
},

onLoad: function () {
    var x1 = cc.p(0, 0);
    var x2 = cc.p(100, -200);
    var x3 = cc.p(200, 0);
    var x4 = cc.p(300, 200);
    var x5 = cc.p(400,0);
    var bezier1 = cc.bezierTo(2,[x1, x2, x3]) 
    var bezier2 = cc.bezierTo(2,[x3,x4,x4]) 
    var ac = cc.sequence(bezier1, bezier2);
    this.ab.runAction(ac);
    this.schedule(function () {
        cc.log(this.ab.position)
    }, 0.1)
},

只是在顺序执行中间会有停顿的动作

停顿的解决了吗?
我的是先运行一条直线,然后在贝塞尔曲线,这直线的结束和贝塞尔开始之间的转场太生硬了

这里 Bezier曲线插件(支持可视化编辑、匀速、缓动、多曲线运行)