`
yidongkaifa
  • 浏览: 4069631 次
文章分类
社区版块
存档分类
最新评论

cocos2d-x帧动画实现(续)

 
阅读更多

猴子原创, 欢迎转载,转载请在明显处注明! 谢谢。

原文地址http://blog.csdn.net/yanghuiliu/article/details/6933421

之前我介绍过cocos2d-x的帧动画实现,今天我把帧动画详细写一下。

帧动画就是很多张png的序列图实现轮流播放产生动画效果。

那么首先我们要一套动画的序列图,没有图的可以看引擎例子里面的图。很多张图我们可以采用TP工具将它们压缩到一张png里面去,这样程序只需要读取一次就行了,提高效率。


比如我将这里的6张图压成了一个png,TP会产生一个所有图的png和一个plist描述文件,plist很像xml,它描述了每一张图的位置,大小等信息。程序就是通过plist文件在合成的大png里面找到每一张图的。

合成的大图叫fei.png,对应的fei.plist。

里面的小图。叫 飞0001.png、飞0002.png、.........飞0006.png

下面开始程序的创建

            //创建cache
    CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();
    char strPlist[64] = {0};
    char strPng[64] = {0};
    sprintf(strPlist,"fei.plist");
    //sprintf(strPng,"fei.pvr.ccz"); 
    sprintf(strPng,"fei.png");
    cache->addSpriteFramesWithFile(strPlist, strPng);
    
    //创建动画每一帧,从cache里面读取
    CCMutableArray<CCSpriteFrame*>* animFrames = new CCMutableArray<CCSpriteFrame*>(6);
    
    char str[64] = {0};
    for(int i = 1; i <= 6; i++) 
    {
        sprintf(str, "飞%04d.png", i);
        CCSpriteFrame* frame = cache->spriteFrameByName( str );
        animFrames->addObject(frame);
    }
    
    CCAnimation* animation = CCAnimation::animationWithFrames(animFrames,0.04f);
   
    CCRepeatForever* mFly=CCRepeatForever::actionWithAction( CCAnimate::actionWithAnimation(animation, false));
    animFrames->release();
    cache->removeSpriteFramesFromFile(strPlist);

这里的mFly就是一个创建好的action。当然它是可以重复播放的。你要是只想播放一次。

那么替换成

CCActionInterval* mFly=CCAnimate::actionWithAnimation(animation,true);

你可能看到了我里面注释了一行代码,就是我不是压缩成了png,而是压缩成了pvr.ccz。这种格式效率更高。

pvr是苹果自己支持的图片格式,但是比较占内存,压缩成ccz后就很小了。用法一样。




分享到:
评论

相关推荐

    cocos2d-x帧动画播放器

    cocos2d-x 上面用的一个帧动画播放器类 用系统的动作播放动画总感觉不自在,所以自己写了一个,给需要的朋友用用吧。 主要功能: 1:普通动画播放 2:聚合多个动画 3:制定停留哪一个动画的哪一帧 4:停止,继续播放,...

    cocos2d-x 3.2 使用cocos studio导出的帧动画

    cocos2d-x 3.2 使用cocos studio导出的帧动画所用资源

    cocos2d-x动画资源

    cocos2d-x的动画资源素材,在cocos2d-x中添加如下代码使用: //动画 //创建一个缓存 auto cache = SpriteFrameCache::getInstance(); //先把图片读入内存 cache-&gt;addSpriteFramesWithFile("anim.plist"); ...

    Cocos2D-X游戏开发技术精解

    第1章 Cocos2D-X引擎的介绍 1 1.1 何为游戏引擎 1 1.1.1 游戏的核心—引擎 1 1.1.2 引擎的特点 2 1.1.3 知名的引擎介绍 4 1.1.4 引擎的分类 5 1.2 Cocos2D-X引擎的来历 8 1.3 引擎的版本 9 1.4 下载与安装 10 1.5 ...

    GifAnimation:实现将gif图片转换为cocos2d-x帧动画

    GifAnimation 实现将GIF动画转换为cocos2d-x帧动画,支持cocos2d-x3.0以上版本,支持跨平台。

    cocos2d-x播放flash序列帧示例

    cocos2d-x播放flash序列帧示例 可参考博文 http://blog.csdn.net/piao_polar/article/details/12765621

    cocos2d-x-dynamic-lighting:Cocos2d-x 教程

    Cocos2d-x 动态光照演示这个简单的 Cocos2d-x 项目演示了如何从精灵表加载精灵帧创建动画用法线贴图初始化点光源效果并启发你的动画这是完整的教程:设置为了保持存储库的大小,我们没有将 Cocos2d-x 本身添加到存储...

    Coco2d-x使用教程

    ActionTimeline动画的使用,二、修改动画,关键帧事件,创建多个Node对象,异步加载动画Armature,创建动画并显示,设置骨骼动画的速度,批量添加怪物,实现动画的事件完成动作修改,每个动画的帧事件处理,修改骨骼皮肤,骨骼...

    Cocos2D-X:Cocos2D-X框架。 其他班级

    Cocos2D-X Cocos2D-X框架的便捷类和摘录的个人集合。 欢迎您将它们包括在您的项目中,并根据需要进行调整。 也可以随时优化代码并提交更改。 滑动手势(Cocos2D-X 3.6): 基本的滑动手势和MoveBy动作。 将其拖放...

    Cocos2d-x 3.0开发(十三)使用CocoStudio编辑帧事件并关联到程序

    帧事件指的是一个与帧相关联的事件。作为新加入的功能,它会给开发带来很多便利。这篇中我们将看到如何使用它。我们将上篇中制作的动画稍加修改。相关博客地址:...

    cocos2d-x3.2跑酷游戏源码

    实现了Tmx地图,帧动画,动画层和地图层的碰撞检测,地图滚动等跑酷游戏核心逻辑

    Cocos Studio 创建帧动画

    使用Cocos Studio 创建的帧动画,使用Cocos Studio 创建帧动画可以提高开发效率,节约开发成本

    CSArmature+DragonBones

    实用于解决cocos2d-x动画实现,可以在少量关键帧,资源,内存的情况下实现平滑的动画,自动补间,从此以后动画实现就交给美术吧,因为只需要flash上编辑动画就可以在cocos2d-x上运行。这个包里面是CSArmature喝...

    x-studio365(游戏引擎开发工具)v10.0.5900.190官方安装免费版

    x-studio365软件是一款基于cocos2d-x游戏引擎开发的... cocos2d-x引擎版本3.13, spine运行库版本3.4,暂不支持帧动画编辑,永久免费,持续更新,有需要的伙伴们欢迎前来下载使用。 软件特色  * 代码编辑支持UTF-8字

    特训99游戏源码

    主要知识点,详情请移步:http://codingnow.cn/cocos2d-x/1402.html 1. cocos2d-x实现帧动画 2. 使用Box2D进行碰撞检测 3. 一些粒子特效 4. cocos2d-x 3.0在android平台添加admob广告 5. xml解析和cocos2d-x显示中文

    CocoStudio v0.2.4.0

    CocoStudio是一套基于Cocos2D-X引擎的工具集,包括UI编辑器、动画编辑器、场景编辑器和数据编辑器。UI编辑器和动画编辑器主要面向美术,而场景编辑器和数据编辑器面则面向游戏策划,这四个工具合在一起构成了一套...

    CocoStudio v0.2.4.0.zip

    CocoStudio是一套基于Cocos2D-X引擎的工具集,包括UI编辑器、动画编辑器、场景编辑器和数据编辑器。UI编辑器和动画编辑器主要面向美术,而场景编辑器和数据编辑器面则面向游戏策划,这四个工具合在一起构成了一套...

Global site tag (gtag.js) - Google Analytics