温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

coco2dx 3.3 缓存资源踩到的一些坑

发布时间:2020-07-21 05:43:27 来源:网络 阅读:692 作者:落魄码农 栏目:开发技术

    今天项目接近收尾阶段,开始对项目的资源进行整合打包,并对其进行缓存!但还是让我遇见一些坑!

    第一个坑是,图片都打包成plist,在项目里有些图片提示找不到。log打印如下信息

    

    Get data from file(level_lives.png) failed, error code is 2

 

    我就蛋疼了,后来看了下找不到的图片都是因为创建的精灵,改变纹理用到setTexture,getTexture相关的接口。猜测是这里出了问题,把这些接口改成setSpriteFrame,getSpriteFrame之类的,就没问题了!

    因为我缓存都是plis文件,看了下Sprite::create里面的代码,会在创建精灵的时候调用的下面这段代码:

     Texture2D *texture = Director::getInstance()->getTextureCache()->addImage(filename);

    所以只有create创建的精灵或者自己用TextureCache加入缓存,改变纹理才能调用setTexture,getTexture相关的接口。

    用SpriteFrameCache加入缓存的,改变纹理只能调用setSpriteFrame,getSpriteFrame之类的。

    

    第二坑是发现音乐和音效其实不用预加载!!!!去看引擎代码,发现preloadBackgroundMusic是空的。。。。再看preloadEffect是有内容的,但在playEffect时候会调用preloadEffect。。。

    缓存资源可以根据界面,分批加载需要显示的资源!!!!!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI