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