关于贝塞尔曲线运动cc.bezierTo请教

如图,我正在做一款街机游戏,
小车围绕跑到跑动,当小车跑到拐角的时候,需要做适当的旋转,车头要朝下,
我用cc.bezierTo来做,请问如何获取到小车走动时cc.bezierTo的旋转角度呢

var bezierTo1 = cc.bezierTo(10, typeArray);
var act = bezierTo1.easing(cc.easeInOut(10));
this.carNode.runAction(act);

提供思路,获取上次和本次坐标,根据坐标计算角度!

1赞

我用贝塞尔曲线做不出自己想要的弧度,您是怎么解决的

我没用曲线,直接切成4个四分之一圆加两个横线,两个竖线,这就好算了

我最后在update中做的,描上每个点的坐标,update中控制运行速度,就实现加速和减速了。

能分享下吗

今天用了一种新方法来实现,用runaction的moveto来移动车子

   var MAXALLCAR = 32; //车子数量
   //this.data. 定义的每个车子的坐标位置和旋转角度
   var animArray = [];
    var det = 0.1;
    var roate = 0;
    for (let index = 0; index <= MAXALLCAR; index++) {
        const element = this.data[index];
        var move = cc.moveTo(det, element.pos);
        var sound = cc.callFunc((_,i)=>{
            self._soundManage.playSound_carRun();
        },this.carNode,idx)
        animArray.push(sound);
        if (roate != element.rotation) {
            var roat = cc.rotateTo(det, element.rotation);
            animArray.push(cc.spawn(move, roat));
            roate = element.rotation;
        } else {
            animArray.push(move);
        }
    }

    var act = cc.sequence(animArray);
    var action = act.easing(cc.easeInOut(2.0));
    var anim = cc.sequence(
        action,
        cc.callFunc(()=>{
            self._soundManage.playSound_carStop();
        })
    );
    this.carNode.runAction(anim);

虽然实现了效果但是在转角的时候不是很平滑,有待优化

1赞

楼主能说下直线action和贝塞尔曲线action怎么衔接的吗,每次跑到曲线就会减速

拐弯时就应该减速…真实的模拟了现实世界.