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) },
只是在顺序执行中间会有停顿的动作
停顿的解决了吗?
我的是先运行一条直线,然后在贝塞尔曲线,这直线的结束和贝塞尔开始之间的转场太生硬了