创建动画一般过程:

1、创建精灵框架缓存,并向其中添加相应的动画文件(plist),最后,通过动画集缓存生产动画

    CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache();cache->addSpriteFramesWithFile("animations/grossini.plist");cache->addSpriteFramesWithFile("animations/grossini_gray.plist", "animations/grossini_gray.png");CCSpriteBatchNode *spritebatch = CCSpriteBatchNode::create("animations/grossini.png");//用于批量生产精灵 CCArray* animFrames = CCArray::createWithCapacity(15);//动态生成数组,类似于vectorfor(int i = 1; i < 4; i++){//sprintf的作用是字符串格式化,主要功能是把格式化的数据写入某个字符串中。sprintf(str, “ani_conch_%d.png”, 1)后str的值就变成了:ani_conch_1.pngsprintf(str, "grossini_blue_%02d.png",i);//两位数字,不够的话,用零补全CCSpriteFrame *frame = cache->spriteFrameByName(str);animFrames->addObject(frame);}animation = CCAnimation::createWithSpriteFrames(animFrames, 0.2f);   //创建动画集,切换时间为0.2s// Add an animation to the CacheCCAnimationCache::sharedAnimationCache()->addAnimation(animation, "dance_blue"); // 把此动画集加入动画集缓存中,并命名为dance_blueCCAnimationCache *animCache = CCAnimationCache::sharedAnimationCache();     //共享动画集缓存 CCAnimation *normal = animCache->animationByName("dance");      //获得动画集缓存CCAnimate *animN = CCAnimate::create(normal);      //创建动画

另外,CCString * str = CCString ::createWithFormat ( "market_chipsLogo%d.png" , idx);也可以实现替换数字的效果。

2、直接传人多个图片文件,生成动画

    CCSprite *mainsprite=CCSprite::create("catBody1.png");CCAnimation *animation=CCAnimation::create();animation->addSpriteFrameWithFileName("catBody1.png");animation->addSpriteFrameWithFileName("catBody2-4.png");animation->addSpriteFrameWithFileName("catBody3.png");animation->addSpriteFrameWithFileName("catBody2-4.png");animation->setDelayPerUnit(0.1f);//设置动画的间隔时间animation->setRestoreOriginalFrame(true);//是否返回第一帧mainsprite->runAction(CCRepeatForever::create(CCAnimate::create(animation)));

3、直接传入一张大图,包含多个小图,生成动画

    CCTexture2D *pTexture=CCTextureCache::sharedTextureCache()->addImage("hero.png");CCSpriteFrame *frame0=CCSpriteFrame::createWithTexture(pTexture,CCRectMake(0,0,32,32));CCSpriteFrame *frame1=CCSpriteFrame::createWithTexture(pTexture,CCRectMake(32,0,32,32));CCSpriteFrame *frame2=CCSpriteFrame::createWithTexture(pTexture,CCRectMake(64,0,32,32));CCSpriteFrame *frame3=CCSpriteFrame::createWithTexture(pTexture,CCRectMake(96,0,32,32));CCArray  *animFrames=CCArray::create();CC_BREAK_IF(!animFrames);animFrames->addObject(frame0);animFrames->addObject(frame1);animFrames->addObject(frame2);animFrames->addObject(frame3);CCAnimation *animation=CCAnimation::createWithSpriteFrames(animFrames,0.2f);heroSprite0->runAction(CCRepeatForever::create(animate));

欢迎转载,转载请注明出处:http://blog.csdn.net/somestill/article/details/9852159

cocos2d-x创建精灵动画相关推荐

  1. cocos2dx:addAnimation如何创建精灵动画并在工程中调用展示

    cocos2dx:addAnimation如何创建精灵动画并在工程中调用展示 设备/引擎:Mac(11.6)/cocos 开发工具:Xcode(13.0) 开发需求:cocos2dx:addAnima ...

  2. 小鬼学cocos2dX笔记01——创建精灵动画(二)

    接上部分,我们完成了上面的操作后,就要开始往我们的cpp里写代码啦~~~ bool HelloWorld::init() {//// 1. super init firstif ( !CCLayerC ...

  3. 小鬼学cocos2dX笔记01——创建精灵动画(一)

    刚学cocos2dx,想做一个动画,翻书+查资料,太多无关代码,不太适合像我一样的新人看.下面是我的一些学习笔记: 目标是在窗口中创建一个人物移动动画. 要准备的工作有如下: 1.下载红孩儿工具箱(最 ...

  4. 精灵动画Animation对话框组成Idle动画的各精灵

    精灵动画Animation对话框组成Idle动画的各精灵 场景中已经添加了精灵,现在是时候让让它动起来了.读者也许已经从精灵图集中,各精灵的命名中看出来了,这个精灵一共有两种动画状态:Idle(空闲) ...

  5. Unity精灵动画 2D碰撞

    图片导入 设置等: 常用的格式png jpg 将图片textureType设置为Sprite 将单个图片设置为SpriteMode设置为Single 将包含多个小图的一张大图SpriteMode设置为 ...

  6. unity学习笔记-精灵集和精灵动画

    2D游戏中,对精灵的操作需求,往往是两点: 1. 静态精灵:一般做背景展示等 2. 精灵动画:帧动画.骨骼动画等 声明:以下对Unity的操作,基于Unity3D 4.3.4,本人初学Unity,没用 ...

  7. Cocos2d学习之路三(使用Zwoptex创建精灵表单和CCAnimate动画)

    创建精灵表单: 创建动画先要把图片整合到一个图片上然后生成plist文件: 方法下载Zwoptex软件:http://www.zwopple.com/zwoptex/ 然后打开选择 create ne ...

  8. Cocos2D研究院之精灵与动画

    转载自雨松MOMO程序研究院本文链接地址:Cocos2D研究院之精灵与动画(六) 通过对导演.场景.层和节点的剖析,现在我们已经可以写出一个完整的游戏体系了,在实际应用中,场景一般都是作为游戏的关卡, ...

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

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

最新文章

  1. mysql 错误记录
  2. Windows Thin PC中文化
  3. step1 . day6 C语言基础练习之数组和字符串
  4. Mysql数据库(二)——mysql数据库管理
  5. 算法(9)--两个数的最大公约数
  6. Linux什么时候在pc机上有一席之地
  7. replace()替换文字
  8. NetBeans Weeldy News 刊号 # 53 - Apr 23, 2009
  9. jquery easyUI第一篇【介绍、入门、使用常用的组件】
  10. 接口测试(二)--APP抓包
  11. 计算机笔记本电脑加固态硬盘,笔记本固态硬盘,教您怎么给笔记本加固态硬盘...
  12. linux移除硬盘命令,在Linux中在线添加及移除SCSI硬盘方法
  13. java图片上传数量限制_bootstrap fileinput实现限制图片上传数量及如何控制分批多次上传...
  14. 搭建 PHP 开发环境(手把手图文教程)
  15. RPM软件包管理命令简介
  16. 仿大逃杀源码_破咒不是您的典型大逃杀
  17. 企业面试题|最常问的MySQL面试题集合(二)
  18. Android自动更新时间去除WIFI无法连接互联网提示
  19. Pop!_OS版机器人仿真实践镜像测试中(2021)
  20. MySQL自学笔记详细版(从安装到入门)

热门文章

  1. Android Systrace 基础知识(9)-MainThread 和 RenderThread 解读
  2. Android手机应用接口大全
  3. MySQL 留存率和复购率的场景分析
  4. 又改考408了!杭州师范大学阿里巴巴商学院!
  5. windows线程之CreateThread与_beginthreadex区别详解
  6. 将MethodInfo转化为Delegate的方式
  7. div模拟自适应表格(表头表身分离,表身出现滚动条)
  8. Windows自带强大的入侵检测工具——Netstat 命令 查询是否中木马
  9. 不用科学上网,免费的GPT-4 IDE工具Cursor保姆级使用教程
  10. 激活函数的比较和优缺点,sigmoid,tanh,relu,softmax