zoukankan      html  css  js  c++  java
  • 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);
    //}
  • 相关阅读:
    XTU1199:Number Game
    SSL连接建立过程分析(1)
    JavaScript高级编程II
    PreferenceFragment 使用 小结
    crm使用soap更改下拉框的文本值
    POJ2241——The Tower of Babylon
    四个好看的CSS样式表格
    无论你在哪里上班,请记住下面黄金法则!
    js的for in循环和java里的foreach循环的差别
    具体解释EBS接口开发之物料导入API
  • 原文地址:https://www.cnblogs.com/newlist/p/3155771.html
Copyright © 2011-2022 走看看