一、层的概念
我们从Cocosd2x框架中可以看出,它分为导演-->场景--->层-->精灵,并且为树状结构;一个导演可以包含多个场景、一个场景可以包含多个层。那当然,一个层可以包含多个精灵,他们相当于一个容器,子容器中设置我们要显示的东西。
二、CClayerColor类
#ifndef __T06CCLayers_H__
#define __T06CCLayers_H__
#include "cocos2d.h"
#include "f:\cocos2dx\cocos2d-x-2.2.6\cocos2dx\layers_scenes_transitions_nodes\cclayer.h"
USING_NS_CC;
class T06CCLayers :
public CCLayer
{
public:
T06CCLayers(void);
~T06CCLayers(void);
static CCScene* scene();
CREATE_FUNC(T06CCLayers);
bool init();
};
#endif
<pre name="code" class="cpp">#include "T06CCLayers.h"
T06CCLayers::T06CCLayers(void)
{
}
T06CCLayers::~T06CCLayers(void)
{
}
CCScene* T06CCLayers::scene()
{
CCScene* scene = CCScene::create();
T06CCLayers* layer = T06CCLayers::create();
scene->addChild(layer);
return scene;
}
bool T06CCLayers::init()
{
CCLayer::init();
CCSize size = CCDirector::sharedDirector()->sharedDirector()->getWinSize();
CCLayerColor* layer = CCLayerColor::create(ccc4(255, 0, 0, 255), size.width / 2, size.height / 2);
addChild(layer);
return true;
}
三、 CCLayerGradient类
CCLayerGradient* layer = CCLayerGradient::create(ccc4(255, 0, 0, 255), ccc4(0, 255, 0, 255),ccp(1, 1));
四、CCLayerMutiplex
#include "T06CCLayers.h"
T06CCLayers::T06CCLayers(void)
{
}
T06CCLayers::~T06CCLayers(void)
{
}
CCScene* T06CCLayers::scene()
{
CCScene* scene = CCScene::create();
T06CCLayers* layer = T06CCLayers::create();
scene->addChild(layer);
return scene;
}
bool T06CCLayers::init()
{
CCLayer::init();
CCSize size = CCDirector::sharedDirector()->sharedDirector()->getWinSize();
CCLayerColor* layer1 = CCLayerColor::create(ccc4(255, 0, 0, 255), size.width / 2, size.height / 2);
CCLayerGradient* layer2 = CCLayerGradient::create(ccc4(255, 0, 0, 255), ccc4(0, 255, 0, 255),ccp(1, 1));
CCLayerMultiplex* layer = CCLayerMultiplex::create(layer1, layer2, NULL);
_id = 0;
setTouchEnabled(true);
_layer = layer;
addChild(layer);
return true;
}
void T06CCLayers::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent)
{
_id = 1 - _id;
_layer ->switchTo(_id);
}