• COCOS2D-X FRAME动画创作随笔



    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行动,使运行该向导。


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

  • 相关阅读:
    前端性能优化-全链路质量监控体系建设
    前端性能优化-研发开发流程优化
    一次VLAN标签引发的网络事件的处置
    2001
    SpringBoot定时任务
    在el-dialog中使用ref找不到元素?
    el-table使用checkbox时,获取选中数据的id?
    SpringBoot邮件发送
    表单中el-select和el-input的长度不一致?
    element-ui如何修改el-dialog的样式?
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4795439.html
Copyright © 2020-2023  润新知