怎么获得 cocos2d-x 的动画帧

怎么获得 cocos2d-x 的动画帧


慕运维8079593
浏览 655回答 1
1回答

白猪掌柜的

int currentAnimIndex = 0; //精灵当前播放的是第几帧for(int i = 0; i < 5; i++){ //5张图5帧 if(prite->displayedFrame() == anim->getFrames()->getObjectAtIndex(i)) { //这个i返回的只是一个索引,如果帧数是从1开始计算就要+1 currentAnimIndex = i+1; }}prite->displayedFrame()获取的是当前精灵动画所显示的帧精灵指(CCSpriteFrame).anim->getFrames()获得的是整个动画所保存的帧精灵指针数组(CCSpriteFrame)其实我们创建animation时所添加进去的图片文件都会转化成CCSpriteFrame保存起来。animation->getFrames()->getObjectAtIndex(i)获取的是animation中帧精灵数组中某个索引的元素,这个元素也是CCSpriteFrame.获取的原理就是,我通过sprite->displayedFrame()获得我当前精灵所播放的CCSpriteFrame,然后去跟我的动画数组(CCSpriteFrame数组)去做比较,取得对应元素在数组中的下标从而获取当前精灵播放的是第几帧。
打开App,查看更多内容
随时随地看视频慕课网APP