cocos2d-x自己封裝的一個 等待的控制項 TTWaitting

來源:互聯網
上載者:User

    自己用 cocos2d-x封裝了個等待的動畫,代碼如下:

    

#include <iostream>#include "cocos2d.h"#include "cocos-ext.h"USING_NS_CC;USING_NS_CC_EXT;using namespace std;class   TTWaitting:public   CCLayer{public:    TTWaitting();    ~TTWaitting();        bool   initWithBgImage(std::string  strImageName);        void   startAnimation();        void   stopAnimation();        static   TTWaitting *  createWithBgImage(std::string  strImageName);    public:    CCSprite  *  m_bgSprite;};

#include "TTWaitting.h"TTWaitting::TTWaitting(){    }TTWaitting::~TTWaitting(){    } bool  TTWaitting::initWithBgImage(std::string  strImageName){    if (strImageName.empty() )    {        return false;    }        m_bgSprite =  CCSprite::create(strImageName.c_str());    m_bgSprite->setPosition(ccp(                                m_bgSprite->getContentSize().width * 0.5f,                                m_bgSprite->getContentSize().height * 0.5f                                ));    this->addChild(m_bgSprite);        //設定contentSize    this->setContentSize(m_bgSprite->getContentSize());        //將錨點設定回0.5,0.5    this->setAnchorPoint(ccp(0.5f,0.5f));        return  true;}void   TTWaitting::startAnimation(){    if (m_bgSprite)    {        m_bgSprite->stopAllActions();                CCRotateBy   *  rotateAct =  CCRotateBy::create(2.5f, 360);        CCRepeatForever  *   rotateRep =  CCRepeatForever::create(rotateAct);        m_bgSprite->runAction(rotateRep);    }}void   TTWaitting::stopAnimation(){    if (m_bgSprite)    {        m_bgSprite->stopAllActions();    }}TTWaitting *  TTWaitting::createWithBgImage(std::string  strImageName){    if (strImageName.empty() )    {        return  NULL;    }        TTWaitting  *   pRet = new  TTWaitting();        if (pRet  != NULL  &&  pRet->initWithBgImage(strImageName))    {        pRet->autorelease();            }    else    {        delete   pRet;        pRet = NULL;    }    return  pRet;}

使用例子如下:

    //顯示 正在重新整理的背景    if (m_waitingCtrl == NULL)    {        m_waitingCtrl =  TTWaitting::createWithBgImage("loading.png");                m_waitingCtrl->setPosition(ccp(                                   m_originPoint.x + 320/2 - m_waitingCtrl->getContentSize().width * 0.5f,                                    this->getContentSize().height * 0.5f - m_waitingCtrl->getContentSize().height * 0.5f                                    ));                        this->addChild(m_waitingCtrl, 1);    }    else    {        m_waitingCtrl->setVisible(true);    }        m_waitingCtrl->startAnimation();

    //停止 動畫,隱藏提示    if (m_waitingCtrl)    {        m_waitingCtrl->stopAnimation();        m_waitingCtrl->setVisible(false);    }


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.