cocos2d+lua实现帧动画播放
使用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实现帧动画播放相关推荐
- CSS 帧动画 播放动画
CSS3 帧动画 amimation @keyframes 在 CSS3 出现之前,动画都是通过 JavaScript 动态的改变元素的样式属性来完成了,这种方式虽然能够实现动画,但是在性能上存在一些 ...
- 自定义ImageView实现播放帧动画
对于帧动画的显示有多种不同的实现方式,帧动画的图片有两种不同的情形,一种是多个单张图片,放在animation-list对应的xml里面,采用轮播的方式进行:另一种是一张大图片排列不同的小图片,之前实 ...
- [Android动画] 帧动画-获取帧数( getNumberOfFrames)七
2019独角兽企业重金招聘Python工程师标准>>> [功能说明]该方法用于获取动画的帧个数,也就是按照顺序播放了几张图片.该方法常常用于获取帧动画对象特性的场合. [基本语法]p ...
- UGUI 帧动画插件
最近在开发一款功夫猫游戏,本来使用Unity Sprite制作,但是发现Sprite对各种分辨率不支持. 看着游戏很简单就使用UGUI制作,在中途发现有很多帧动画播放,使用了Animation调整使用 ...
- 鸿蒙开发-新建Ability与使用image-animator实现图帧动画
场景 鸿蒙开发-基础组件介绍及chart组件使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/118333539 在上面学习了 ...
- 【FFH】Canvas实现帧动画及封装(OpenHarmony JS UI)
目录C Demo展示 实现思路 代码封装 canvas绘制图像 动画播放 代码调用 Demo展示 这里以Tom猫(多年前热门的移动端互动小游戏)为例: 实现思路 首先要了解帧动画播放的原理--正如我们 ...
- Cocos2d-x Lua中实例:帧动画使用
Cocos2d-x Lua中实例:帧动画使用 下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画. ...
- Android 帧动画何时停止播放
为什么80%的码农都做不了架构师?>>> 关于android帧动画没有提供结束播放的接口回调表示不理解,也许是基于播放动画的时候,系统在干其他事情,无法确切地保证动画在tota ...
- android Frame-By-Frame Animations(一帧一帧地播放动画)的使用
为什么80%的码农都做不了架构师?>>> 程序功能,点击按钮时,图片一张一张循环播放: 直接来代码: AppMain.java [java] view plaincopy pa ...
最新文章
- 遇到网络问题你是怎么解决的?安琪拉有二招
- 华为计算黄之鹏:AI开源框架已经到“汽车替代马车”的阶段 | MEET2021
- 【转载】Hyperledger学习小结
- pythonloop循环结构_python - tensorflow,tf.while_loop:这两个结构没有相同的嵌套结构 - SO中文参考 - www.soinside.com...
- docker自动部署
- tomcat内存溢出,修改设置
- ubuntu中flashcache使用教程
- 在JS/jQuery中,怎么触发input的keypress/keydown/keyup事件?
- 2021-04-13 Linux I/O模型
- python 编程效率_五个Python编程Tips,帮你提高编码效率
- treeset可以重复吗_java容器(五)HashSet与TreeSet
- 2013dgtcs 数对
- 微信小程序云开发教程-微信小程序的JS基础-this关键字
- 破解密码——利用粘滞键漏洞破解Windows 7 PIN
- Blender学习-考拉课程学习记录
- python安装mysqldb报错
- E - Competitive Seagulls(博弈)
- 数字图像信号-灰度内插
- python-regex-thread-localhost
- Lightswitch Desktopclinet 中如何调用WEB API