#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\n", 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);
//}