cocos2dx layer 类型

CCLayer是一个知道如何处理接触操作的CCNode。Layers知道如何绘制并且可能是半透明的,玩家能够看到这些Layer之后的东西。CCLayers在定义游戏的界面和动作是非常重要的,所有在开发中你需要花费大多数时间去写一些CCLayer的子类来实现你想要的。
 
CCLayer可以定义触摸回调,通过继承一些方法可以处理触摸事件(ccTouchBegan,ccTouchMoved,ccTouchEnded或者ccTouchCancelled)。一个CClayer能够跟用户进行互动。这些触摸事件能够在一个场景中的所有Layer中一层层传递下去,直到某个Layer获取他们并且能够处理事件,则停止传递。

复杂的应用需要你去自定义一些CCLayer的子类,cocos2d提供了几个预定义的layers。比如CCMenu(一个简单的菜单层),CCColorLayer(一个可以绘制实体颜色的层),CCLayerGradient (一个可以绘制渐变颜色的层),CCLayerMultiplex(一个可以处理多个复杂子层的Layer,能够一次激活一个子层,并且与此同时disable其他的层)
 
Layers可能包含CCNode作为子层,包括CCSprites,CCLabels,并且甚至其他的CCLayer对象。
 
多层的例子如下:
 
CCLayerGradient* layer1 = CCLayerGradient::create(ccc4(255, 0, 0, 255), ccc4(255, 0, 255, 255));  
  layer1->setContentSize(CCSizeMake(80, 80));  
layer1->setPosition(ccp(50,50));  
addChild(layer1);  
CCLayerGradient* layer2 = CCLayerGradient::create(ccc4(0, 0, 0, 127), ccc4(255, 255, 255, 127));  
layer2->setContentSize(CCSizeMake(80, 80));  
layer2->setPosition(ccp(100,90));  
addChild(layer2);  

 CCLayerGradient* layer3 = CCLayerGradient::create();  
layer3->setContentSize(CCSizeMake(80, 80));  
layer3->setPosition(ccp(150,140));  
layer3->setStartColor(ccc3(255, 0, 0));  
layer3->setEndColor(ccc3(255, 0, 255));  
 layer3->setStartOpacity(255);  
layer3->setEndOpacity(255);  
ccBlendFunc blend;  
blend.src = GL_SRC_ALPHA;  
blend.dst = GL_ONE_MINUS_SRC_ALPHA;  
 layer3->setBlendFunc(blend);  
addChild(layer3); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值