为了账号安全,请及时绑定邮箱和手机立即绑定

怎么获得 cocos2d-x 的动画帧

怎么获得 cocos2d-x 的动画帧

慕运维8079593 2019-03-03 20:04:47
怎么获得 cocos2d-x 的动画帧
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞


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数组)去做比较,取得对应元素在数组中的下标从而获取当前精灵播放的是第几帧。






查看完整回答
反对 回复 2019-03-11
  • 1 回答
  • 0 关注
  • 688 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信