之前我介紹過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...