CCAnimate继承CCActionInterval,和CCAnimate是一家action,有着action所有的属性和方法。

CCAnimate一些重要的方法:

static CCAnimate* create ( CCAnimation * pAnimation )依据Animation创建Animate

virtual CCAnimation* getAnimation ( void ) 依据Animate获得Animation

bool initWithAnimation ( CCAnimation * pAnimation )依据Animation初始化仅仅创建了Animate对象的实例

virtual CCActionInterval* reverse ( void )获得Animate对象反序对象

virtual void setAnimation ( CCAnimation * var )设置Animation

virtual void stop ( void ) 停止动作





由全部创建CCAnimate方法发现,全部的对象都是依据Animation来创建。

static CCAnimation * createWithSpriteFrames (CCArray *arrayOfSpriteFrameNames, float delay=0.0f)通过CCArray 和延时来创建CCAnimation

CCArray 是一个CCSpriteFrame数组。表示该CCAnimation全部的动画帧。delay表示动画的延迟时间。每一个动画帧间的时间间隔。

static CCArray* createWithCapacity ( unsigned int capacity )依据动画帧数创建数组容量。用于存放各个动画帧。

CCArray 中的CCSpriteFrame表示精灵动作的某帧,CCSpriteFrame的创建方法与使用精灵帧创建精灵一样。

动画创建中会使用到各种图片,若每次在载入图片时都进行处理。则会浪费非常多系统资源,COCOS2D-X中通过CCTextureCache来解决问题。

CCTextureCache为纹理缓存类,该类是一个单实例类:

static CCTextureCache* sharedTextureCache ( )获得CCTextureCache单实例对象。

static void purgeSharedTextureCache ( ) 清理全部的缓存

void removeTexture ( CCTexture2D * texture )依据CCTexture2D 对象删除缓存

void removeTextureForKey ( const char * textureKeyName )依据CCTexture2D 对象名删除缓存

void removeUnusedTextures ( ) 清除掉全部没有再使用的缓存

CCTexture2D* addImage ( const char * fileimage )通过图片路径,将该图片纹理加入缓存。若该路径已经加入过则直接获取图片纹理对象。







当某一动画须要频繁使用时。相同使用动画缓存类来解决动画反复调用问题:

CCAnimationCache 用于管理动画缓存。该类为单实例。

static CCAnimationCache * sharedAnimationCache (void) 获取CCAnimationCache 单实例。

static void purgeSharedAnimationCache (void) 清理CCAnimationCache 类缓存空间

void addAnimation (CCAnimation *animation, const char *name) 向CCAnimationCache 中加入Animation对象,并以唯一表示字符串标识

void removeAnimationByName (const char *name)通过唯一标识字符串删除Animation对象

CCAnimation * animationByName (const char *name)通过唯一标识字符串获取已经加入的Animation对象

其它方法省略

全部缓存类的使用尽管提供了跟快的处理速度,可是牺牲了系统内存为代价,使用时应当择优使用

FRAME动画总结:动画是由详细精灵来展现。首先得到精灵的动作的全部动作帧 CCSpriteFrame,再通过CCArray 对象将全部的在同一动作中的动画帧组合起来。

通过这一系列的已经组合的动画帧创建出Animation对象,完毕真正的动画。

运行动画动作需要完成,因此,创建CCAnimate行动,使运行该向导。

版权声明:本文博主原创文章。博客,未经同意不得转载。

COCOS2D-X FRAME动画创作随笔的更多相关文章

  1. Frame动画实战

    Android动画分为Tween动画和Frame动画,Tween动画主要包括图片的放大缩小.旋转.透明度变化.移动等等操作:Frame动画则简单得多了,就是把一张张的图片连续播放产生动画效果. 本节主 ...

  2. cocos2d 播放GIF动画类

    cocos2d 播放GIF动画类 以前项目中曾经用到过,后来因为GIF图像的质量较差,被弃用了,把公司名字去掉分享下,根据网上资料改编的cocos2d-iphone版的. // // CCSprite ...

  3. android之frame动画详解

    上一篇我们说了android中的tween动画,这一篇我们说说frame动画,frame动画主要是实现了一种类似于gif动画的效果,就是多张图按预先设定好的时间依次连续显示. 新建一个android项 ...

  4. 背水一战 Windows 10 (42) - 控件(导航类): Frame 动画

    [源码下载] 背水一战 Windows 10 (42) - 控件(导航类): Frame 动画 作者:webabcd 介绍背水一战 Windows 10 之 控件(导航类) Frame 动画 示例An ...

  5. Android Frame动画demo

    Android动画介绍:Android为我们提供了两种动画实现,Frame和Tween. 两者之间的区别: 1.Frame动画:就像放电影一样,是通过预先做好的图片进行连续播放从而形成动画效果 2.T ...

  6. 按钮在执行frame动画的时候怎么响应触发事件?

    按钮在执行frame动画的时候怎么响应触发事件? 代码中效果(请注意,我并没有点击到按钮,而是点击到按钮的终点frame值处): 对应的代码: // // ViewController.m // Ta ...

  7. Android 动画具体解释Frame动画 (Drawable Animation)

    Frame动画像gif画画,通过一些静态的图片,以实现动画效果. Android sdk该AnimationDrawable就是专门针对Frame动画,当然Frame动画也可在java代码或者xml中 ...

  8. Android Tween和Frame 动画

    关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景里的对象不断做图像变换(平移.缩放. ...

  9. frame动画

    <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android=&q ...

随机推荐

  1. NYOJ115 市叛乱 【SPFA】

    城市平乱 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安,这M个城市 ...

  2. Spring 类构造器初始化实例

    构造方法类Bean1 package com.hao947.bean; public class Bean1 { public Bean1() { System.out.println("b ...

  3. Java命令学习系列(7):Javap(转)

    原文出处: Hollis(@Hollis_Chuang) javap是jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码. 一般情况下,很少有人使用javap对class文件 ...

  4. 不用Root权限获取已经安装的Apk安装包

    在安卓设备上安装的apk都会被保留一份在/data/app目录下,但是该目录对于普通用户来说只有可执行权限,是无法访问的. 但是其子文件具有可读权限. 意思也就说我们直接去查看/data/app这个目 ...

  5. cocos2d-x 精灵的创建和基本使用

    在cocos2d-x中.精灵能够说是一个最重要的组成元素,它代表游戏中一个最小的可见单位.同一时候也是CCNode一个最为灵活的子类,由于它能够通过装载一个平面纹理,从而具有丰富的表现力. 在进一步说 ...

  6. HBaseConvetorUtil 实体转换工具

    HBaseConvetorUtil 实体转换工具类 public class HBaseConvetorUtil {        /**    * @Title: convetor    * @De ...

  7. Mysql insert声明优化

    1) 假设你同一时候从同一客户插入非常多行,使用多个值表的INSERT语句. 这比使用分开INSERT语句快(在一些情况中几倍).    Insert into test values(1,2),(1 ...

  8. Python多线程的threading Event

    Python threading模块提供Event对象用于线程间通信.它提供了一组.拆除.等待用于线程间通信的其他方法. event它是沟通中最简单的一个过程之中,一个线程产生一个信号,号.Pytho ...

  9. C# Windows Phone 8 WP8 高级开发,制作不循环 Pivot ,图片(Gallery)导览不求人! 内附图文教学!!

    原文:C# Windows Phone 8 WP8 高级开发,制作不循环 Pivot ,图片(Gallery)导览不求人! 内附图文教学!! 一般我们在开发Winodws Phone APP 的时候往 ...

  10. SQL Server数据库视图

    1:什么是视图 2:视图和查询的区别 3:视图的优点 4:如何创建和管理视图 5:如何通过视图修改基本表的数据 6:如何通过视图实现数据的安全性 A:什么是视图: 视图(view):从一个或几个基本表 ...