我的Cocos2d-x学习笔记(五)CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex
来源:互联网 发布:淘宝如何设置搭配套餐 编辑:程序博客网 时间:2024/05/14 07:15
之前仅仅学习了CCLayer,但是关于层的并不仅仅是这些,还有另外的一些,例如:CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex。
首先复习一下CCLayer:
CCLayer的继承关系:
由CCLayer的继承关系就可以知道此类可以接受触摸操作,重力加速度计,输入。
CCLayer 类总仅包含CCLayer *CCLayer ::create(void);一个创建层的函数。用法就是创建一个层,添加到渲染树上去。用法之前提到过,再看一遍:
CCScene* scene = CCScene::create();HelloWorld* layer = HelloWorld::create();scene->addChild(layer);此时创建的层是透明的,直接添加到父节点CCScene当中。这里面有一点需要注意,CCLayer默认是忽略锚点的,锚点忽略后其锚点位置位于ccp(0,0)的位置,而CCLayer对象的坐标则默认为ccp(0,0)。
#define ccp(__X__,__Y__) cocos2d::CCPointMake((float)(__X__), (float)(__Y__))#define CCPointMake(x, y) CCPoint((float)(x), (float)(y))由上面两行代码可知ccp()为一个宏,其实际作用是创建一个CCPoint()对象。
之后看一些CCLayer的子类:
在这些子类中,现在只来学习一些CCLayerColor、CCLayerGradient、CCLayerMultiplex。
CCLayerColor:
CCLayerColor类中含有三个创建颜色层的create()函数。
CCLayerColor* CCLayerColor::create();CCLayerColor * CCLayerColor::create(const ccColor4B& color);CCLayerColor * CCLayerColor::create(const ccColor4B& color, GLfloat width, GLfloat height);CCLayerColor* CCLayerColor::create():使用此函数,创建一个默认颜色值为ccc4(0,0,0,0),和窗口大小一致的层。
CCLayerColor * CCLayerColor::create(const ccColor4B& color):使用此函数,可以指定一个颜色值,层的大小与窗口一致。
CCLayerColor * CCLayerColor::create(const ccColor4B& color, GLfloat width, GLfloat height):使用此函数,不仅可以给层指定一个颜色,还可以指定层的宽和高。
使用举例:
1、CCLayerColor* layerColor1 = CCLayerColor::create();addChild(layerColor1);2、CCLayerColor* layerColor2 = CCLayerColor::create(ccc4(125,125,125,125));addChild(layerColor2);3、CCLayerColor* layerColor3 = CCLayerColor::create(ccc4(125, 125, 125, 125),100,100);addChild(layerColor3);
CCLayerGradient:
CCLayerGradient类中含有三个create()函数。
CCLayerGradient* CCLayerGradient::create();CCLayerGradient* CCLayerGradient::create(const ccColor4B& start, const ccColor4B& end);CCLayerGradient* CCLayerGradient::create(const ccColor4B& start, const ccColor4B& end, const CCPoint& v);CCLayerGradient* CCLayerGradient::create():使用此函数时候,默认从ccc4(0, 0, 0, 255)变到 ccc4(0, 0, 0, 255),默认从上到下渐变,实际上看不到渐变效果。
CCLayerGradient* CCLayerGradient::create(const ccColor4B& start, const ccColor4B& end):使用此函数可以指定两个渐变颜色,默认从上到下渐变。
CCLayerGradient* CCLayerGradient::create(const ccColor4B& start, const ccColor4B& end, const CCPoint& v):使用此函数可以指定两个渐变颜色,第三个参数是渐变的方向,是一个向量。
其中ccColor4B的与ccc4()具体内容如下:
typedef struct _ccColor4B{ GLubyte r; GLubyte g; GLubyte b; GLubyte a;} ccColor4B;//! helper macro that creates an ccColor4B typestatic inline ccColor4Bccc4(const GLubyte r, const GLubyte g, const GLubyte b, const GLubyte o){ ccColor4B c = {r, g, b, o}; return c;}const GLubyte r, const GLubyte g, const GLubyte b, const GLubyte o:前三个为RGB颜色值,最后一个为透明度。
CCLayerMultiplex :
它可以管理多个层,并实现不同层间的切换,但是同一时间只能有一个层是激活状态,其他都是不可见的。
实例:
CCLayerColor* layerColor = CCLayerColor::create(ccc4(125, 125, 125, 125));CCLayerGradient* layerGradient = CCLayerGradient::create(ccc4(0, 0, 0, 255), ccc4(255, 255, 255, 255), ccp(1, 1));CCLayerMultiplex* layerMult = CCLayerMultiplex::create(layerColor, layerGradient, NULL);addChild(layerMult);默认情况下显示第一个层,可以使用layerMult->switchTo(0); 来切换当前显示图层。
在CCLayer、CCLayerColor、CCLayerGradient当中都存在init开头的函数,此函数可以在从CCLayer、CCLayerColor、CCLayerGradient派生子类时,子类init()中初始化父类时直接调用为父类初始化为指定背景颜色等。
- 我的Cocos2d-x学习笔记(五)CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex
- cocos2d-x(4):CCLayer(层) CCLayerColor、CCLayerGradient、CClayerDelegate学习
- Cocos2d-2.x_CCLayer,CCLayerColor,CCLayerGradient,CCLayerMultiplex层的介绍
- 总结Cocos2d-x中Layer的使用(CCLayerColor、CCLayerGradient、CCLayerMultplex)
- Cocos2d-x学习笔记(五)CCLayer分析及输入事件处理(触摸、重力传感器、按键)
- Cocos2d-X 学习笔记 18 CCLayerMultiplex管理多个层
- Cocos2d-x结构学习(十六)CCLayerColor、CCProgressTimer、CCProgressTo、CCSet
- 1.多彩的幕布CCLayerColor,CCLayerGradient
- cocos2d-x学习之CCLayer
- cocos2d-x学习笔记(4)--CCLayer背景绘制
- Cocos2d-X 学习笔记 21 CCLayer响应手机按键
- Cocos2d-X 学习笔记 22 CCLayer 界面Touch事件处理
- 【Cocos2d-X开发学习笔记】第05期:渲染框架之布景层类(CCLayer)的使用
- 【Cocos2d-X开发学习笔记】第05期:渲染框架之布景层类(CCLayer)的使用
- Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验
- cocos2dx之CCLayerColor、CCLayerGradient
- cocos2d-x+cocosbuilder 学习笔记 (五)
- Cocos2d-x结构学习(四)CCLayer、CCApplicationProtocol、CCApplication
- “印象笔记”的分享
- 从零开始打造一个新闻订阅APP之Android篇(四、实现仿微信发图界面)
- 对泛型栈的学习
- [dp] poj3280 Cheapest Palindrome
- 会员卡管理系统技术解析(二)Java Web SSH 框架的搭建
- 我的Cocos2d-x学习笔记(五)CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex
- IIC读写AT24C02代码1——通过串口命令控制R/W
- x86汇编基础记录,以便查询
- 爱立信
- Mybatis深入之初始化过程
- unity-sysfont: Unity3D plugin for rendering dynamic text using device/platform fonts
- openwrt启动脚本分析
- 非常量引用的初始值必须为左值的问题
- Linux下文件的CLOEXEC选项