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

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

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

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

有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);
}
其实根本不需要那几张白色底图。。。
确实是可以这样解决的,就是没有找到 公用一个SpriteFrame,更新数据会刷掉的问题。
这就是个逻辑问题,跟BUG没啥关系。1和2共用了同一个spriteframe,相当于你对同一个texture执行了两次initWithData,那它肯定只保留最后的效果啊