Cocos2d 提供的画曲线正能输入两个控制点,那就是一段标准的贝塞尔曲线。如果把两端曲线自然的结合起来,需要算一下两个参数,让他们具备一定的关系。
做一个贝塞尔曲线的方式是这样的
ccBezierConfig config;
config.controlPoint_1 = Point(10, 10);
config.controlPoint_2 = Point(10, 20);
config.endPosition = Point(0, 30);
BezierTo* pBezierTo = BezierTo::create(0.5f, config);
如果做两个曲线运动可以再同样做这样一个操作。但若想保证两个曲线过渡比较平滑,需要让 第二个曲线的 controlPoint_1(P2), 第一个曲线的endPosition(P1),第一个曲线的controlPoint_2(P0) 在同一直线上。为保证做到这一点,首先算出P0P1与水平面的夹角å,给定P1P2的水平距离,即可根据å的正切值就可以算出P1P2的竖直距离。根据他们的距离可以算出他们的位置,或者是用BezierBy直接做相对位置的移动。