为什么结点的node在新加入节点之后会突然自动重排

CFWJQLC}TGP42(VXM)H61GG
如图,我本来是每帧把节点头部移到尾部,碰撞之后加入新节点b1.
可以看到碰撞后刚加入是正常的,但是第二轮开始,节点就自动重排了 b1被移到了最后,
按照本来的规则,应该是002 ,b1,003,004

你怎么做节点移动的

要移动的都放在一个子节点,然后第一个拿出来放最后一个,setposition跟上另外一个玩家控制的头,这样每帧轮下去。
碰撞之后第一轮加入的节点位置正确,第二轮就重排了,按照初始顺序,新加入的b1变成了最后一个

有相关代码看看么

let xx=this.player.position.x
let yy=this.player.position.y
let child=this.bodyall.children
let weiba=child.pop()
this.bodyall.children.unshift(weiba)
weiba.setPosition(xx,yy)
这些放在update里面。

你这个排序只是排了child数组啊,不会影响到节点

你会玩啊,拿着children真当数组来玩

let xx=this.player.position.x
let yy=this.player.position.y
let children=this.bodyall.children;
let weiba = children[0];
weiba.setSlibingIndex(children.length-1);
weiba.setPosition(xx,yy)

原来是这样!似乎明白了,我回去试试。

感谢两位大佬,之前新节点加入children的时候。我还奇怪为什么parent是null,
原来数组和父子节点不一样