因为项目需求需要通过y轴去设置层级 但是通过setSiblingIndex 设置层级之后必然还会在闪烁 各位大佬,请问有什么方案可以解决吗?
是不是你用的排序不是稳定排序。在y一样是时候就会闪烁
在排序的节点,新加节点setSiblingIndex(parent.children.length + 1)貌似可以解决,具体原因不明
是因为会有怪物移动然后 需要频繁修改层级
尝试过不过再update里面需要频繁更改层级 所以还是会闪
我猜可能存在这种情况,a和b的y坐标都是100。然后排序的时候,时而a在前,时而b在前
把频率降低一下看看
没有做过类似的需求,盲猜一波。
每次调用setSiblingIndex的时候,理论上是会修改所有兄弟节点的顺序。
你前一帧主动修改了一个节点顺序,后一帧又会被动的修改顺序,所以才会出现闪的情况。
你试试每帧调用update,将所有节点的y进行sort排序,然后以从小到大的方式,先getSiblingIndex进行判断,如果与你预期不一致再setSiblingIndex。
排序的节点多吗?我当时遇到过类似的问题就是因为排序的节点太多导致帧率下降造成的。
不是稳定排序,可以指定一个函数做统一更新
在Director.EVENT_BEFORE_DRAW事件中去排序
能不能把源码贴一下,这样好分析问题