cocos2d x幀動畫實現(續)

2022-08-10 13:00:27 字數 1464 閱讀 9808

之前我介紹過cocos2d-x的幀動畫實現,今天我把幀動畫詳細寫一下。

那麼首先我們要一套動畫的序列圖,沒有圖的可以看引擎例子裡面的圖。很多張圖我們可以採用tp工具將它們壓縮到一張png裡面去,這樣程式只需要讀取一次就行了,提高效率。

比如我將這裡的6張圖壓成了乙個png,tp會產生乙個所有圖的png和乙個plist描述檔案,plist很像xml,它描述了每一張圖的位置,大小等資訊。程式就是通過plist檔案在合成的大png裡面找到每一張圖的。

合成的大圖叫fei.png,對應的fei.plist。

裡面的小圖。叫 飛0001.png、飛0002.png、.........、飛0006.png

下面開始程式的建立

[cpp]view plain

copy

//建立cache

ccspriteframecache* cache = ccspriteframecache::sharedspriteframecache();  

char

strplist[64] = ;  

char

strpng[64] = ;  

sprintf(strplist,"fei.plist"

);  

//sprintf(strpng,"fei.pvr.ccz"); 

sprintf(strpng,"fei.png"

);  

cache->addspriteframeswithfile(strplist, strpng);  

//建立動畫每一幀,從cache裡面讀取

ccmutablearray* animframes = new

ccmutablearray(6);  

char

str[64] = ;  

for(

inti = 1; i <= 6; i++)   

ccanimation* animation = ccanimation::animationwithframes(animframes,0.04f);  

ccrepeatforever* mfly=ccrepeatforever::actionwithaction( ccanimate::actionwithanimation(animation, false

));  

animframes->release();  

cache->removespriteframesfromfile(strplist);  

那麼替換成

ccactioninterval* mfly=ccanimate::

actionwithanimation

(animation,

true

);你可能看到了我裡面注釋了一行**,就是我不是壓縮成了png,而是壓縮成了pvr.ccz。這種格式效率更高。

pvr是蘋果自己支援的格式,但是比較佔記憶體,壓縮成ccz後就很小了。用法一樣。

cocos2d x 連幀動畫實現

最開始的動畫片也是用疊加的方法,下面介紹如何有多張實現乙個小小的動畫 然後在你的init函式裡面 ccsprite p2 ccsprite spritewithfile name1.png 首先還是要建立乙個精靈物件 p2 setposition ccpointmake 240,160 this a...

Cocos2dx 《基礎》 幀動畫

幀動畫 a.spriteframe 精靈幀。精靈幀包含了對應紋理在大的紋理區域中的位置和大小,對應紋理是否經過旋轉和偏移。根據這些幾何資訊,可以從大的紋理中找到正確的紋理區域作 為精靈幀顯示的影象。使用紋理建立精靈幀 auto tex texturecache getinstance addimag...

cocos2d x幀動畫實現(寫下備忘)

那麼首先我們要一套動畫的序列圖,沒有圖的可以看引擎例子裡面的圖。很多張圖我們可以採用tp工具將它們壓縮到一張png裡面去,這樣程式只需要讀取一次就行了,提高效率。動畫是打地鼠地鼠出洞的表現,如下 新的遊戲動畫 建立cache ccspriteframecache cache ccspritefram...