cocos2d-x開發遊戲時,使用Texture packer來合併圖片

出版圈郭志敏發表於2011-08-25

  Texture packer的確比Zwoptex更加強大,功能更多,跨平臺,在使用cocos2d-x在win32下開發的時候,能夠在win32下使用的優點就更加明顯了。何況Zwoptex以前是完全免費的,在使用者多了以後坑爹般的開始收費了,連個可用的免費版本都沒有(只有自己保留的老版本可用),而Texture packer一直有可用的免費版本,雖然Pro版本貴的離譜.

  Texture packer的主介面如下:

enter image description here

1.Add Sprites

上圖中的樣子就是用Add sprite功能,新增了cocos2d的示例圖片後的樣子。texture packer能夠自動的用較為優化的演算法來排列圖片,使得佔用空間儘量的少,作為初級版本,沒有一些包括裁剪在內的高階功能(在強行使用高階功能後,會有 提示,也可以匯出圖片,但是會隨機在某些圖片上印上一些英文文字)

2.設定匯出檔案的位置

enter image description here

  這個位置是一個絕對位置,此時可以儲存一份texture packer的工程。這個工程會記錄這個匯出的位置。有一點使用者體驗非常好的地方是設定了plist的位置後,texture的為止texture packer會自動生成一個。

3.匯出

  點選publish按鈕即可。將來在原始圖片更改的時候,直接載入這個工程,然後也只需要再次點選public按鈕即可,會同時生成plist和texture檔案。相當易用。

  Enable auto alias非常有用,可以將相同的圖片自動合併,對於三維匯出的序列幀和flash自動匯出的序列幀動畫,常常可以節省很多空間。

  到目前為止,這已經很強大了。但是Texture packer的強大不僅如此,手工編輯再方便,也不如自動化來的快~~~~

  Texture packer在安裝後,在安裝目錄下(windows)會有一個叫texture packer的可執行檔案,直接將剛才生成的tps檔案作為引數傳進去,就能自動的生成~~~再配合VS或者XCode的工程配置,完全可以做到生成程式 的時候對texture的全自動化處理。(不過這個需要pro的license)

4.程式中的使用

  先通過以下介面預載入

  void CCSpriteFrameCache::addSpriteFramesWithFile(const char *pszPlist)

  然後通過以下介面使用:

  CCSpriteFrame* CCSpriteFrameCache::spriteFrameByName(const char *pszName)

  CCSprite* CCSpriteFrameCache::createSpriteWithFrameName(const char *pszName)

  CCSpriteFrameCache本身是個單件。

轉自:http://blog.csdn.net/vagrxie/article/details/6715416

相關文章