【步兵 cocos2dx】圖片管理 之 什麼時候打pvr.ccz

【步兵 cocos2dx】圖片管理 By EOS.

好久沒有更新了=、= 天太熱,新工作下班就好TM晚。o(︶︿︶)o 唉


進入正題

用texturePacker來圖片打包的好處就是壓縮尺寸和一次性加載,減少文件讀寫次數。
而且加載速度也有優化,反正好處就是多多多。

但是呢,每次把圖片打包又煩煩煩,所以呢,我給大家分享一些經驗=、=


祕籍1:打包和不打包不影響代碼

這點做到了的話,什麼時候圖片打包還重要麼~哈哈哈哈,發版本的時候在批量處理就好了

我用僞代碼來說明一下=、=(就不貼代碼,你能怎樣)

--我就直接用lua代碼了,其他的也都大同小異
function newSprite(name, touchEvent,  rectInsets)
    --touchEvent 如果不是nil 就添加點擊事件,addTouchToNode
    --rectInsets 如果不是nil 就用改用Scale9Sprite
    --以上兩點就不提了,講主要內容=、=

    local retSprite = nil
    --先從 幀緩存中獲取(因爲最後發包肯定是用pvr.ccz所以這個判斷放在前面,減少判斷次數)
    retSprite = SpriteFrameCache:getSpriteFrameByName(name)
    if not retSprite then
        --沒有咋辦類~,加載plist唄
        --命名規則規劃好,前綴_文件名.png(前綴是文件夾的名字),最後打包出 前綴.plist
        local plist = 截取前綴
        if isFileExist(plist) then 
            --如果plist存在
            SpriteFrameCache:addSpriteFramesWithFile(plist)--加載
            retSprite = newSprite(name, touchEvent,  rectInsets)
        else 
            --如果plist不存在
            if isFileExist(name) then 
                --如果圖片本身存在
                retSprite = Sprite:create(name)
            end
        end
    end

    if not retSprite then
        --到這裏還沒有,就是沒有輸入有問題了,比如png打成了papapa,=、=
        retSprite = newSprite(DefaultValues.PNG)
        --加載默認圖片之前說過好處,再強調一邊,返回nil真機上崩潰查起來真的很麻煩,
        --但是如果看到大紅色默認PNG那就肯定知道是圖片出了問題~
    end
    return retSprite
end

那麼問題來了,小名曰:項目已經進行了大半,但是沒有用規範命名怎麼辦呀呀呀呀~
麼關係,還有後手~

    --配個表
    imgPlist = {
        ["aa.png"] = "ui/haha.plist",
        ["vv.png"] = "ui/inGame/vava.plist",
    }
    --然後就這樣
    if imgPlist[name] then
        plist = imgPlist[name]
        --其他如上
    end

祕籍2:當然就是批處理

上邊也有說,命名規範化,當然要有批處理的支持,難道要累死不成~
這裏推薦一下luaForWindows,直接用lua就可以寫了,方便很多,bat太反人類
或者說太落後了=、=,當然如果之前會ruby和python就無所謂了。

規範化的命名還有很多好處的,比如寫UI,我前綴名字,就用view的名字,
一來根據ui來圖片找起來直觀,
二來showView和closeView,可以寫個基類,來控制加載和卸載plist文件
三來打包的時候,批量話起來更簡單,直接把文件夾下的所有圖片 打成 文件夾名.plist
(文件夾和文件名 拼接這步應該在之前就處理了)


祕籍3:當然就是texturepacker的使用

您的軍功值未達標,不可查看


總結

後邊我還會分開來講winLua和texturepacker的命令行使用=、=
over~

See Again~
之前
真愛無價,歡迎打賞~
讚賞碼

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