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