
如图,我本来是每帧把节点头部移到尾部,碰撞之后加入新节点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,
原来数组和父子节点不一样