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);
    //}
  • 相关阅读:
    ArrayBlockingQueue
    mysql数据库引擎
    数据库主从复制,分库分表
    Java并发工具类-Semaphore,Exchanger
    分片策略
    kafka
    关于数据库设计
    生产者消费者模式

    Callable、Future和FutureTask
  • 原文地址:https://www.cnblogs.com/newlist/p/3155771.html
Copyright © 2011-2022 走看看