如果设置了
texture.setFilters(cc.Texture2D.Filter.NEAREST, cc.Texture2D.Filter.NEAREST);
控制台一直输出这个警告:
[WARN]: Unknown TEXTURE_FMT: undefined
动态合图 如何使用Point 过滤方式啊?
求指教啊!!!!!!!!
这个问题太简单了么?
如果设置了
texture.setFilters(cc.Texture2D.Filter.NEAREST, cc.Texture2D.Filter.NEAREST);
控制台一直输出这个警告:
[WARN]: Unknown TEXTURE_FMT: undefined
动态合图 如何使用Point 过滤方式啊?
求指教啊!!!!!!!!
这个问题太简单了么?
tex.update({‘minFilter’:cc.Texture2D.Filter.NEAREST,‘magFilter’:cc.Texture2D.Filter.NEAREST,‘format’:cc.Texture2D.PixelFormat.RGBA8888});
在实际使用的时候再把tex重新update一次
cc.macro.CLEANUP_IMAGE_CACHE = false; cc.dynamicAtlasManager.enabled = true; cc.dynamicAtlasManager.maxFrameSize = 1024; cc.dynamicAtlasManager.showDebug(true); cc.loader.loadRes('head',cc.SpriteFrame,((err,spf)=>{ this.spf1 = spf; this.block1 = true; }).bind(this)); cc.loader.loadRes('head2',cc.SpriteFrame,((err,spf)=>{ this.spf2 = spf; this.block2 = true; }).bind(this)); while(this.block1!=true||this.block2!=true) yield; cc.dynamicAtlasManager.insertSpriteFrame(this.spf1); cc.dynamicAtlasManager.insertSpriteFrame(this.spf2); yield; cc.find('New Sprite').getComponent(cc.Sprite).spriteFrame = this.spf1; yield; // cc.find('New Sprite').getComponent(cc.Sprite).spriteFrame.getTexture().update({'minFilter':cc.Texture2D.Filter.NEAREST,'magFilter':cc.Texture2D.Filter.NEAREST,'format':cc.Texture2D.PixelFormat.RGBA8888}); yield; cc.find('New Sprite copy').getComponent(cc.Sprite).spriteFrame = this.spf2; yield; // cc.find('New Sprite copy').getComponent(cc.Sprite).spriteFrame.getTexture().update({'minFilter':cc.Texture2D.Filter.NEAREST,'magFilter':cc.Texture2D.Filter.NEAREST,'format':cc.Texture2D.PixelFormat.RGBA8888});
我这儿测试的结果是,这两行注掉,new sprite 和 new sprite copy都是糊的,
但是把这两个注释解掉,那么他们就都是point了
https://github.com/cocos-creator/engine/blob/26031bddd1aecdbf9bbdebe19ecaa672b1c35061/cocos2d/core/renderer/utils/dynamic-atlas/manager.js#L39
这里可以看到实际上是_atlases在管,但是实际上它没有对外暴露
manager把它赋值出去是拷贝复制的,不是引用复制
实际上你把上面两行解掉注释后,可以发现debug里面的图仍然是糊的,但sprite的spriteframe用的texture不是糊的
说实话没有太明白,我不管加不加update,都不行。
我对你的yield也非常感兴趣,这个有用么?为啥我代码里加不了?
可以查下 生成器,一般用于将一个过程拆散分几帧运行,一些引擎调用是当前帧不生效,要隔几帧再调