求求大佬们指点一下,下面的拼图是用一张整图分割组装出来的,遇到的问题是有些带有透明区域的方块出现了视频中的那种问题,本应该是透明的地方似乎留有之前颜色的缓冲。切割方法是把整图作为纹理,通过不同的纹理坐标等分成了一堆小方块,按照策划给的拼图数据把小方块放到一个空的父节点里组合。cocos2.3.4

1 2 3

症状是我把这个切割的拼图放到同样是切割出来的拼图上,原本应该是透明的区域颜色变成了最下方的精灵节点的颜色。这个拼图节点的结构是一个父节点下放了几个切割出来的小方块组合成图案。有些小方块只有一部分有颜色,其他区域是透明的。就像图2这样,我把它放到正常的精灵节点上面就是正常的。然后往他们中间再插入一个拼图,会发现最上方拼图的透明区域直接显示了最下方精灵节点的颜色,中间那个拼图被无视了。


这是切割的代码,就是把整图切成10*10张小方块再组合

是不是有什么设置被我遗漏了啊

meshRender最终渲染的层级并不是按照节点的zIndex属性来的,你会发现即使把节点的zIndex设置的最大,但渲染的纹理不一定依然在最上面,它的最终渲染是根据顶点数据的z值来的

我现在比较疑惑的一点是,那个透明区域是发生了什么,实际上我这些不规则图形都是用小方块拼出来的,可以看到最上面那个节点周围的透明区域下面就直接渲染出了最下面的精灵节点的颜色,中间还有一个图形的这部分没显示3 。这是三个节点叠加在一起的,上面两个都是我用meshrender做出来的,下面的是正常的精灵,看起来的感觉就是中间的节点一部分在底部精灵的上面一部分在下面,在下面的那部分是由于最上面的节点的透明区域导致的。

youdu图片20210223160321 把它们错开之后是这样的

虽然没搞懂,但是换了种方法切图实现了需求。用的是spriteFrame上的setRect方法去切割图片。