coco2dx 3.3 緩存資源踩到的一些坑

    今天項目接近收尾階段,開始對項目的資源進行整合打包,並對其進行緩存!但還是讓我遇見一些坑!

    第一個坑是,圖片都打包成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。。。

    緩存資源可以根據界面,分批加載需要顯示的資源!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章