1 回答

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
int currentAnimIndex = 0; //精靈當(dāng)前播放的是第幾幀for(int i = 0; i < 5; i++){ //5張圖5幀 if(prite->displayedFrame() == anim->getFrames()->getObjectAtIndex(i)) { //這個(gè)i返回的只是一個(gè)索引,如果幀數(shù)是從1開始計(jì)算就要+1 currentAnimIndex = i+1; }}prite->displayedFrame()獲取的是當(dāng)前精靈動(dòng)畫所顯示的幀精靈指(CCSpriteFrame).
anim->getFrames()獲得的是整個(gè)動(dòng)畫所保存的幀精靈指針數(shù)組(CCSpriteFrame)
其實(shí)我們創(chuàng)建animation時(shí)所添加進(jìn)去的圖片文件都會(huì)轉(zhuǎn)化成CCSpriteFrame保存起來。
animation->getFrames()->getObjectAtIndex(i)獲取的是animation中幀精靈數(shù)組中某個(gè)索引的元素,這個(gè)元素也是CCSpriteFrame.
獲取的原理就是,我通過sprite->displayedFrame()獲得我當(dāng)前精靈所播放的CCSpriteFrame,然后去跟我的動(dòng)畫數(shù)組(CCSpriteFrame數(shù)組)去做比較,取得對(duì)應(yīng)元素在數(shù)組中的下標(biāo)從而獲取當(dāng)前精靈播放的是第幾幀。
- 1 回答
- 0 關(guān)注
- 732 瀏覽
添加回答
舉報(bào)