(已解決 謝謝)想請問關於cc.spawn與cc.sequence

想請問各位大神,如標題的兩個方法除了同時動作以及順序動作,還有哪些差異?

(cc.moveTo 移动到目标位置)
(sequence 顺序执行动作,创建的动作将按顺序依次运行。)
(spawn 同步执行动作,同步执行一组动作。)

小弟使用了moveTo使 兩個物件(起始位置不同) 移動到(300,200)的位置 並加入此兩個容器動作中
如果使用cc.sequence 最後兩個物件都會移動到(300,200) <====這是小弟的想法無誤
如果使用cc.spawn 最後一個會移動到(200.00, -100.00) 另一個會移動到(200.00, -250.00) <===小弟以為 兩個物件應該也會移動至(300,200)可是卻形同陌路
已確認兩個物件在同一個父節點底下且同坐標系。
剛碰兩個禮拜的菜鳥小弟 想請問原因為何?

你如何让两个对象在同一个 sequence 或 spawn 执行动作的, 不妨直接把你的代码发一下 ?

代码贴出来,或者来个demo,不然我也不知道原因是啥

        let moveto = cc.moveTo(3,cc.v2(300,200));

       

        let sp_callback = cc.callFunc(()=>{
            cc.log("sp_time"+sp_time);
            cc.log("sp_posi:"+this.node.position);
        });

        let sq_callback = cc.callFunc(()=>{
            cc.log("sq_time"+sq_time);
            cc.log("sq_posi:"+this.node.position);
        });

        let sp = cc.spawn(moveto,sp_callback);
        let sq = cc.sequence(moveto,sq_callback);
        
        let sp_time = sp.getDuration();
        let sq_time = sq.getDuration();

        this.node.runAction(sp);
        //this.node.runAction(sq);

//-----------------------------------------------------------------------------------------------------------------------------------------------//

        let moveto = cc.moveTo(3,cc.v2(300,200));

       

        let sp_callback = cc.callFunc(()=>{
            cc.log("sp_time"+sp_time);
            cc.log("sp_posi:"+this.node.position);
        });

        let sq_callback = cc.callFunc(()=>{
            cc.log("sq_time"+sq_time);
            cc.log("sq_posi:"+this.node.position);
        });

        let sp = cc.spawn(moveto,sp_callback);
        let sq = cc.sequence(moveto,sq_callback);
        
        let sp_time = sp.getDuration();
        let sq_time = sq.getDuration();

        //this.node.runAction(sp);
        this.node.runAction(sq);

层级关系是什么样的?我测了一下好像跟你的表现不一致哦,是不是你还用了什么黑科技:joy:
都可以move到设定的点

action () {
    let moveto = cc.moveTo(2,cc.v2(100,250));
    let sp_callback = cc.callFunc(()=>{
        console.log("sequence");
    });

    let sq_callback = cc.callFunc(()=>{
        console.log("spawn");
    });

    let sp = cc.spawn(moveto,sp_callback);
    let sq = cc.sequence(moveto,sq_callback);

    this.node.runAction(sp);
    //this.node.runAction(sq);
}

Sprite1和Sprite2都执行定做sp:

Sprite1和Sprite2都执行定做sq:

Sprite1执行sp,Sprite2执行sq:

感謝您的解答 小弟知道原因了
因為小弟把物件生成 以及 動作 都放在父子節點的onLoad()之中
導致物件在父節點onLoad()中生成子節點時 我在子節點onLoad()使用了動作 但是 在使用動作的持續之間中 父節點onLoad()生成的物件又去設定了位置 導致產生的位移向量改變

最後小弟把子節點的動作代碼寫到start()中就正常了 感謝解答 !!