CXAnimation类

#include "XAnimation.h"


CXAnimation::CXAnimation(void)
{
    m_strName = "";
    m_nFrameCount = 0;
    m_fInterval = 0.0f;
}

CXAnimation::~CXAnimation()
{

}

CXAnimation* CXAnimation::create( const char* psName, int nBegan, int nCount, float delayPerUnit /*= 1.0*/ )
{
    CXAnimation* pAnimation = new CXAnimation();
    if(pAnimation->init(psName, nBegan, nCount, delayPerUnit))
    {
        pAnimation->autorelease();
        return pAnimation;
    }
    else
    {
        SAFE_DELETE(pAnimation);
    }

    return NULL;
}

bool CXAnimation::init( const char* psName, int nBegan, int nCount, float delayPerUnit /*= 1.0*/ )
{
    m_strName = psName;
    m_fInterval = delayPerUnit;
    m_nFrameBegan = nBegan;
    m_nFrameCount = nCount;
    
    char psFrameName[128] = {0};

    CCArray* animFrames = CCArray::create();
    for (int i = nBegan; i <= nCount; i++)
    {
        sprintf(psFrameName,"%s%02d.png", psName, i);
        CCSpriteFrame* pFrame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(psFrameName);
        ASSERT(pFrame);
        if (pFrame)
        {
            animFrames->addObject(pFrame);
        }
        else
        {
            CCLog("Load Animation faild:%s
", psName);
            SAFE_DELETE(animFrames);
            return false;
        }

    }
    this->initWithSpriteFrames(animFrames, delayPerUnit);
    return true;
}


float CXAnimation::getInterval()
{
    return m_fInterval;
}

float CXAnimation::getDuration()
{
    return m_fInterval * m_nFrameCount;
}

const char* CXAnimation::getAnimationName()
{
    return m_strName.c_str();
}

int CXAnimation::getFrameCount()
{
    return m_nFrameCount;
}

string CXAnimation::getFileName()
{
    return m_strName;
}

//CCSpriteFrame* CXAnimation::firstFrame()
//{
//    return (CCSpriteFrame*)this->getFrames()->objectAtIndex(0);
//}
//
//CCSpriteFrame* CXAnimation::lastFrame()
//{
//    return (CCSpriteFrame*)this->getFrames()->objectAtIndex(this->getFrameCount() - 1);
//}
原文地址:https://www.cnblogs.com/newlist/p/3155771.html