涉及的相关函数和类

动画帧 SpriteFrame

帧缓存 SpriteFrameCache

动画创建的方法

需要的参数:动画帧图片的名字,图片数量,帧时间间隔,循环次数

创建一个动画首先要声明一个图片帧(用SpriteFrame方法)和一个动画(用Animation方法),然后把每一个图片帧添加到动画中。图片帧通过把图片放到帧缓存中得到的,这个时候大多会通过图片的名字(名字+数字-%s%d)遍历每一张图片。

Animate* ActionTool::animationWithFrameName(const char*each_name, int iloops, float delay)
{
    SpriteFrame* frame = NULL;//声明一个图片帧
    Animation* animation = Animation::create();//创建一个动画
    int index = 1;//第几个帧
    do//循环遍历帧
    {
        String* name = String::createWithFormat("%s%d", each_name, index++);//第index++个图片帧名字
        frame = SpriteFrameCache::getInstance()->getSpriteFrameByName(name->getCString);//通过名字获取图片帧 
        if (frame == NULL)//判断帧是否为空
        {
            break;
        }
        animation->addSpriteFrame(frame);//把帧加入到动画中
    } while (true);
    animation->setDelayPerUnit(delay);//帧延时--时间间隔 
    animation->setRestoreOriginalFrame(true);//动画结束后返回到开始帧
    Animate* animate = Animate::create(animation);//创建动作
    return animate;
}