Texture2d.initWithData 渲染问题

  • Creator 版本:2.4.6
  • 目标平台: Chrome浏览器
  • 重现方式:直接运行
  • 首个报错: 无

image

使用Texture2d.initWithData更新数据,前面2个图由于使用了同一张纯白色地图,导致图一渲染图形错误。如果不使用一个底图,则如下图

image

有demo,有demo,有demo
testDemo.zip (321.6 KB)

顶一顶顶一顶

原因是共用了同一个 SpriteFrame ,可以直接创建一个新的:

        for (let index = 0; index < 4; index++) {
            let node = this.nodeList[index];
            let texture = new cc.Texture2D();
            texture.initWithData(this.dataList[index], cc.Texture2D.PixelFormat.RGBA8888, width, width);
            node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);
        }

其实根本不需要那几张白色底图。。。

1赞

确实是可以这样解决的,就是没有找到 公用一个SpriteFrame,更新数据会刷掉的问题。

这就是个逻辑问题,跟BUG没啥关系。1和2共用了同一个spriteframe,相当于你对同一个texture执行了两次initWithData,那它肯定只保留最后的效果啊:rofl: