使用Cocos2d播放帧动画的方法有两种:

先来介绍一下流程:
1.得到动画的每一帧的数组FrameArray

2.将帧动画数组包装成Animation对象

3.将Animation对象转化为可以播放的Action对象

4.使用Sprite来播放Action

第一种:使用TexturePicture来压缩图,用CCSpriteFrameCache来加载

--建立一个Cache来加载解压出的图片
local frameCache = CCSpriteFrameCache:create()
frameCache:addSpriteFrameWithFile("abc.plist","abc.png")
local frameArr = CCArray:createWithCapacity(图片总数)
--建立一个数组来粗放得到的帧
for j=0,图片总数减一 do
local framePath = string.format("abc.%5dpng",j)
--将每个帧图片转换成帧Frame
local frame = frameCache:spriteFrameByName(framePath)
frameArr.addObject(frame)
end

--array 中已经有了Frame了,下来需要将其生成为Animation对象
local animation = CCAnimation:createWithSpriteFrames(frameArr)
--有了animation后下来要将其变为可执行的Action
local action = CCSequence:createWithTwoActions(CCAnimate:create(animation),CCCallFunc:create(function() callBack end))
--有了Action下来需要在屏幕上播放它,因此需要一个载体来给它提供一个块屏幕上的位置来播放,我们这里就用一个空白的Sprite来搞定
local animSprite = CreateBlankCCSprite()
animSprirte:setPosition(x,y)
--一切就绪,开始播放,因为播放的是一个Sequence动画所以,会先播放第一个完成后会执行回调函数
animSprite:runAction(action)

--上述的action为一个动画组合,它会顺序执行执行完动画后会去执行回调函数

第二种:分别加载每一帧的图片来生成帧动画

--定义帧数组
local frameArr = CCArray:createWithCapacity(帧的个数)
--将每一帧的图片加入
for j=0,图片个数-1 do
local framePath = string.format("abc_%d.png",j)
local frame = CCSpriteFrameCache:sharedSpriteFrameCache():spriteFrameByName(framePath) 
end
--好,通过上述操作得到了frame 数组了,下来得到Animation
local animation = CCAnimation:createWithSpriteFrames(frameArr)
--下面同上

转载于:https://my.oschina.net/tedyin/blog/146991

cocos2d+lua实现帧动画播放相关推荐

  1. CSS 帧动画 播放动画

    CSS3 帧动画 amimation @keyframes 在 CSS3 出现之前,动画都是通过 JavaScript 动态的改变元素的样式属性来完成了,这种方式虽然能够实现动画,但是在性能上存在一些 ...

  2. 自定义ImageView实现播放帧动画

    对于帧动画的显示有多种不同的实现方式,帧动画的图片有两种不同的情形,一种是多个单张图片,放在animation-list对应的xml里面,采用轮播的方式进行:另一种是一张大图片排列不同的小图片,之前实 ...

  3. [Android动画] 帧动画-获取帧数( getNumberOfFrames)七

    2019独角兽企业重金招聘Python工程师标准>>> [功能说明]该方法用于获取动画的帧个数,也就是按照顺序播放了几张图片.该方法常常用于获取帧动画对象特性的场合. [基本语法]p ...

  4. UGUI 帧动画插件

    最近在开发一款功夫猫游戏,本来使用Unity Sprite制作,但是发现Sprite对各种分辨率不支持. 看着游戏很简单就使用UGUI制作,在中途发现有很多帧动画播放,使用了Animation调整使用 ...

  5. 鸿蒙开发-新建Ability与使用image-animator实现图帧动画

    场景 鸿蒙开发-基础组件介绍及chart组件使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/118333539 在上面学习了 ...

  6. 【FFH】Canvas实现帧动画及封装(OpenHarmony JS UI)

    目录C Demo展示 实现思路 代码封装 canvas绘制图像 动画播放 代码调用 Demo展示 这里以Tom猫(多年前热门的移动端互动小游戏)为例: 实现思路 首先要了解帧动画播放的原理--正如我们 ...

  7. Cocos2d-x Lua中实例:帧动画使用

    Cocos2d-x Lua中实例:帧动画使用 下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画. ...

  8. Android 帧动画何时停止播放

    为什么80%的码农都做不了架构师?>>>    关于android帧动画没有提供结束播放的接口回调表示不理解,也许是基于播放动画的时候,系统在干其他事情,无法确切地保证动画在tota ...

  9. android Frame-By-Frame Animations(一帧一帧地播放动画)的使用

    为什么80%的码农都做不了架构师?>>>    程序功能,点击按钮时,图片一张一张循环播放: 直接来代码: AppMain.java [java] view plaincopy pa ...

最新文章

  1. 遇到网络问题你是怎么解决的?安琪拉有二招
  2. 华为计算黄之鹏:AI开源框架已经到“汽车替代马车”的阶段 | MEET2021
  3. 【转载】Hyperledger学习小结
  4. pythonloop循环结构_python - tensorflow,tf.while_loop:这两个结构没有相同的嵌套结构 - SO中文参考 - www.soinside.com...
  5. docker自动部署
  6. tomcat内存溢出,修改设置
  7. ubuntu中flashcache使用教程
  8. 在JS/jQuery中,怎么触发input的keypress/keydown/keyup事件?
  9. 2021-04-13 Linux I/O模型
  10. python 编程效率_五个Python编程Tips,帮你提高编码效率
  11. treeset可以重复吗_java容器(五)HashSet与TreeSet
  12. 2013dgtcs 数对
  13. 微信小程序云开发教程-微信小程序的JS基础-this关键字
  14. 破解密码——利用粘滞键漏洞破解Windows 7 PIN
  15. Blender学习-考拉课程学习记录
  16. python安装mysqldb报错
  17. E - Competitive Seagulls(博弈)
  18. 数字图像信号-灰度内插
  19. python-regex-thread-localhost
  20. Lightswitch Desktopclinet 中如何调用WEB API

热门文章

  1. 双向非循环递增链表——插入,删除,清空
  2. 第三天:创建型模式--建造者模式
  3. 利用单片机快速实现家庭智能控制平台
  4. [BZOJ 2002][Hnoi2010]Bounce 弹飞绵羊(分块)
  5. Oracle数据库之PL/SQL程序基础设计
  6. First day in 聚美
  7. [国家集训队]happiness 最小割 BZOJ 2127
  8. 滴,这周的福利已掉落,镁客君请你免费骑摩拜
  9. linux-命令替换-通配符-重定向-管道
  10. Java Collection框架—List\ set \map 的异同世界