[cocos2d-x] CCLayerのFadeIn/FadeOutとか

CCLayerに配置した部品含めてフェードインとかしたい。

できなかったので作りました。

需要あるかな〜と貼っておきます。

MyLayer.h

#include "cocos2d.h"

class MyLayer : public cocos2d::CCLayerRGBA
{
public:
    MyLayer();
    ~MyLayer();
    CC_PROPERTY(GLubyte, m_nOpacity, Opacity)
public:
    static MyLayer *create(void);
};

MyLayer.cpp

#include "MyLayer.h"

using namespace cocos2d;

MyLayer::MyLayer()
{
}
MyLayer::~MyLayer()
{
}


MyLayer *MyLayer::create()
{
    MyLayer *pRet = new MyLayer();
    if (pRet && pRet->init())
    {
        pRet->autorelease();
        pRet->m_nOpacity = 255;
        return pRet;
    }
    else
    {
        CC_SAFE_DELETE(pRet);
        return NULL;
    }
}
GLubyte MyLayer::getOpacity(void){
    return m_nOpacity;
}
void MyLayer::setOpacity(GLubyte opacity)
{
    m_nOpacity = opacity;
    CCObject* child;
    CCARRAY_FOREACH(m_pChildren, child)
    {
        CCNode* pNode = (CCNode*)child;
        cocos2d::CCRGBAProtocol *pRGBAProtocol = dynamic_cast<cocos2d::CCRGBAProtocol*>(pNode);
        if (pRGBAProtocol)
        {
            pRGBAProtocol->setOpacity(opacity);
        }
    }
}

このレイヤー上にCCSpriteやCCLabelTTFを配置し、このレイヤーをフェードインなど

Layer->runAction(CCFadeIn::create(2.0));

すると、全部一緒にフェードインします。

こちらを参考にしました。
How to do Fadein and FadeOut on CCLayer
http://www.cocos2d-x.org/boards/6/topics/16690


guthubに置いてみました。上と同じです。
https://github.com/cocoamix/cocos2d-x-CCLayer-FadeIn-FadeOut

シェアする

  • このエントリーをはてなブックマークに追加

フォロミー

コメントをどうぞ

メールアドレスが公開されることはありません。