2019独角兽企业重金招聘Python工程师标准>>> hot3.png

手动添加

手动添加的方法需要将每一帧要显示的精灵有序添加到Animation类中,并设置每帧的播放时间,让动画能够匀速播放。另外,还要通过setRestoreOriginalFrame来设置是否在动画播放结束后恢复到第一帧。创建好Animation实例后,需要创建一个Animate实例来播放序列帧动画。

    CCAnimation *animation = CCAnimation::create();for (int i = 1; i <= 4; i++){char szName[100] = {0};sprintf(szName, "an1_anim%d.png", i);animation->addSpriteFrameWithFileName(szName);}animation->setDelayPerUnit(2.8f/14.0f);animation->setRestoreOriginalFrame(true);CCAnimate *action = CCAnimate::create(animation);CCSprite *sprite = CCSprite::create("an1_anim1.png");sprite->setPosition(ccp(100, 100));this->addChild(sprite);sprite->runAction(action);

在创建Animation实例时会用到以下几个接口:

  • addSpriteFrame,添加精灵帧到Animation实例
  • setDelayUnits,设置每一帧持续时间,以秒为单位
  • setRestoreOriginalFrame,设置是否在动画播放结束后恢复到第一帧
  • clone,克隆一个该Animation实例

文件添加

/*加载图片帧到缓存池*/CCSpriteFrameCache *frameCache = CCSpriteFrameCache::sharedSpriteFrameCache();
//3.x版本获得缓存池方法如下
//SpriteFrameCache *frameCache = SpriteFrameCache::getInstance();
frameCache->addSpriteFramesWithFile("scene1atlasiPhone.plist");hero = CCSprite::createWithSpriteFrameName("sv_anim_10.png");hero->setPosition(ccp(100, 100));this->addChild(hero);int iFrameNum = 15;CCSpriteFrame *frame = NULL;CCArray *frameArray = CCArray::create();/*用一个列表保存所有CCSpriteFrame对象*/for (int i = 10; i <= 29; i++){
frame = frameCache->spriteFrameByName(CCString::createWithFormat("sv_anim_%d.png", i)->getCString());frameArray->addObject(frame);}/*使用CCSpriteFrame列表创建动画对象*/CCAnimation *animation = CCAnimation::createWithSpriteFrames(frameArray);animation->setLoops(-1);animation->setDelayPerUnit(0.1f);CCAnimate *action = CCAnimate::create(animation);    hero->runAction(action);/*从缓存池中获取CCSpriteFrame对象*/

转载于:https://my.oschina.net/BingzhaoChen/blog/470263

cocos2d-x 2.x创建帧序列动画相关推荐

  1. 【Creator Kit - RPG 代码分析】(4)-游戏玩法-对话框、云朵系统、帧序列动画控制器、动画状态回调、音乐控制

    GamePlay 对话框 上一章说的输入控制器里,还有对对话框输入的控制,这小节就看看对话框的整体实现方式. 对话框输入控制 先看一下对话框输入控制,我对其有一点点修改. void DialogCon ...

  2. 【iOS-Cocos2d游戏开发之二十一 】自定义精灵类并为你的精灵设置攻击帧以及动画创建!【二】...

          Himi这里就不细说了,直接提供给大家Himi封装好的两个方法:(Himi使用的cocos2d-iphone版本是1.0.0)    先唠叨一句,刚才上面说过了,创建精灵一种是利用直接索引 ...

  3. Unity 3D模型动画导出为帧序列

    问题:将用于Unity的3D模型改成2D图片. 思路:把3D动画播放一遍,逐帧对模型截图. 代码说明: 1.要引用的命名空间 using System.IO; using UnityEngine; u ...

  4. cocos2d-x 中创建 CCSprite 精灵动画

    本文原创版权归 博客园 Terry_龙 所有,转载请标明原创作者及出处,以示尊重! 作者:Terry_龙 原文:http://www.cnblogs.com/TerryBlog/archive/201 ...

  5. ps倒出gif只有html,PS中我做好了帧(动画没问题),但是怎么导出GIF的动画?

    回答: 大概分为6个步骤,具体如下: 1.首先我们要准备一组序列图,尺寸是700*700的. 2.然后我们在PS中创建一个新的场景,尺寸为700*700.找到[文件]-[脚本]-[将文件载入堆栈],把 ...

  6. Pr 入门教程之如何创建新序列?

    欢迎观看 Premiere Pro  教程,小编带大家学习 Pr 中常用的重要剪辑技巧,了解如何创建新序列.每个序列都有着特定的帧尺寸和每秒帧数,即帧速率.可以根据需要,在一个项目中创建多个序列,但通 ...

  7. 利用Unity插件Anima2D创建2D骨骼动画

    利用Unity插件Anima2D创建2D骨骼动画 创建步骤 导入Anima2D插件 准备2D素材 配置2D骨骼 对2D角色应用IK(反向动力学) 利用Animation创建2D人物动画 创建步骤 导入 ...

  8. linux+gif+编辑,从Ubuntu的命令行创建和编辑动画GIF | MOS86

    动画GIF在过去几年中变得非常受欢迎,而且他们的流行度日益增长.唐那么清楚引导您创建GIF吗?如果是的话,你但是,如果你在Linux上,并且为这份工作寻找一个命令行工具,那么我们将不会再讨论Gifsi ...

  9. 如何使用React创建视频和动画

    点击上方关注 TianTianUp,一起学习,天天进步 大家好,我是小弋. 分享的内容是: 如何使用 React Remotion 来创建视频的,如果你之前对视频很感兴趣的话,这篇文章可以参考. 正文 ...

最新文章

  1. java中检查性异常类_Java异常处理、java语言推崇使用检查类型异常
  2. 为2440搭建NFS开发环境【ZT】
  3. golang基础02
  4. 记录——《C Primer Plus (第五版)》第八章编程练习第八题
  5. Linux emacs考场配置及对拍脚本
  6. negative binomial(Pascal) distribution —— 负二项式分布(帕斯卡分布)
  7. 测试用例经典练习之淘宝app购物车测试用例
  8. Lasergene DNASTAR 8.1.3 特别版 Mac 专业的医学生物综合性序列分析工具
  9. 《Machine Learning in Action》—— hao朋友,快来玩啊,决策树呦
  10. 单面打印机=》双面打印
  11. miui修改Android,无法修改小米MIUI设备中的系统设置
  12. 乐视max70老款_这货是电视?超大尺寸乐视TV Max70试玩
  13. web(html运行)设置字体大小、样式及字体名称
  14. 大数据行业常用的软件工具有哪些?
  15. Unity IOS游戏内好评
  16. 无线射频专题《无线局域网排错,第二层重传问题3@多径现象》
  17. uniapp 全局数据(globalData)的设置,获取,更改
  18. ipfs 云服务器_安丘ipfs服务器,ipfs云算力组装
  19. DNS部署之动态域名解析DDNS
  20. 模糊控制洗衣机MATLAB模型,基于matlab的洗衣机模糊控制仿真

热门文章

  1. Css常用操作——————分类
  2. new Function()
  3. 用户和用户组的简单总结
  4. 去上海参加MySQL 用户大会的感受
  5. 如何理解写文档这件事情 ?
  6. Busybox下的microcom用法
  7. 实验5 编写调试有多个段的程序
  8. 比特币的锁定脚本与解锁脚本
  9. Russ Miles:被忽略的架构师和混沌工程
  10. shell脚本--02循环与条件