cocos2d-x -CCSpriteFrameCache-CCAnimation
来源:互联网 发布:当前世界危机知乎 编辑:程序博客网 时间:2024/06/04 22:46
转自:http://blog.csdn.net/cocos2der/article/details/6933421
猴子原创, 欢迎转载,转载请在明显处注明! 谢谢。
原文地址: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 -CCSpriteFrameCache-CCAnimation
- cocos2d-x 动画CCAnimation
- Cocos2d-x之CCSpriteFrameCache
- cocos2d-x CCSpriteFrameCache
- cocos2d-x CCAnimation实现动画
- Cocos2d-x动画CCAnimate CCAnimation
- CCAnimation创建动画cocos2d-x
- CCAnimation创建动画 cocos2d-x
- Cocos2d-x动画CCAnimate CCAnimation
- cocos2d-x 2.x 简单动画CCAnimation
- 剖析cocos2d-x中的CCAnimation: 从CCTexture2D到CCAnimation
- 《初学cocos2d-x》- 动画CCAnimation(2)
- CCAnimation创建动画cocos2d-x教程
- CCAnimation创建动画(cocos2d-x)
- cocos2d-x节点(CCAnimation.h)API
- Cocos2d-X使用CCAnimation创建动画
- Cocos2d-X使用CCAnimation创建动画
- cocos2d-x之 CCSpriteFrameCache 用法总结
- cserrise修改对话框图标
- List<> ArrayList
- Android中Proguard和JNI的相关问题
- (多项式特性4.7.7)POJ 2126 Factoring a Polynomial(判断一个多项式能否被分解)
- VS2010更改MFC标题栏图标和生成的执行文件图标
- cocos2d-x -CCSpriteFrameCache-CCAnimation
- Querying the X$ structures
- js框架开发之旅--选择器二
- 把打包好的hex格式的文件转化成bin文件格式
- 子div的margin属性影响到父div的定位
- 调整SQLPlus show parameter命令显示结果列宽
- IOS7开发~解决UIImagePickerController出现时候显示StatusBar
- 10 个你值得拥有的 Vim 配色方案
- 南阳ACM22-素数求和问题