一目了然的不做介绍。
有一篇类似的博文可供参考:http://www.2cto.com/kf/201312/263936.html
cocoa文件夹
1. CCSet : 复制了c++中vector的功能,存放的基类是ccobject
2. CCNS : 将对应字符串格式转成CCRect, CCPoint, CCSize类
3. CCGeometry : CCRect, CCPoint, CCSize类的声明都在这里
4. CCDataVisitor : CCDataVisitor本身作为被继承的类 ; CCPrettyPrinter : 将基础数据类型(int , float, array, dictionary ,set)存入转换成std::string
5. CCAutoreleasePool : 引擎调用。不能被开发者自己创建,引擎用于自动释放对象中使用
6. CCAffineTransform : 引擎调用。齐次变换矩阵;坐标系的切换的核心,就是变换矩阵。在cocos中,此类专门用来表示这样的矩阵
draw_nodes文件夹
1. CCDrawNode : 使用代码绘制一个指定位置,大小,颜色的点;一个指定起点终点,大小,颜色的点 ;一个指定点,填充颜色,边框颜色的,边框宽度的多边形2. CCDrawingPrimitives: 使用代码原生绘图,绘制点,线,矩形,多边形,圆, 贝塞尔曲线等
3. CCGrid : 含有三个类CCGridBase, CCGrid3D,CCTiledGrid3D,主要是为了实现3D格子动态效果
4. CCGrabber : FBO 类抓取屏幕上的内容;供CCGridBase使用(类中有它的对象)
注:fbo全称frame buffer object,如vbo一样,是opengl的一种优化渲染技术,用于提高渲染性能,不同于vbo用于顶点属性,当启用fbo之后的渲染命令会作用于纹理、RBO中,只有撤销fbo之后才会渲染到帧缓存内,也就是说fbo相当于一个调整渲染目标的技术。
include文件夹
1.ccConfig : 一些配置项可以很方便的调试(开启关闭某些功能 比如lua 的debug)
2.CCEventType : 定义应用进入 前台/后台 的通知类型(用于安卓)
3.ccMacros : 一些预处理宏(包含:随机数等)
4.CCProtocols : 投影协议、标签接口、texture协议、RGBA协议、混合(blend)协议;涉及了透明度,透明度/颜色 在 children 和parent 之间的传递
5.ccTypes : 字体属性、texture属性、RGB组成(各种颜色的宏,color格式转换的函数)......
6.cocos2d : cocosd 所包含的类文件
label_nodes文件夹
1. LabelAtlas :效率最高,显示连续的内容,例如数字0-9
<pre name="code" class="cpp">
CCLabelAtlas* diceCount=CCLabelAtlas::labelWithString("1:", "nums_font.png", 14, 21, '0');
//第一个参数:显示的内容:1x,你也许会奇怪为什么是1x,因为使用的png图必须是连续的,因为程序内部是议连续的scall码识别的。9的后一位的”:“,所以先实现x就得用”:“代替。
//第二个参数:图片的名字
//第三个参数:每一个数字的宽
//第四个参数:每一个数字的高
//每五个数字:开始字符
2. CCLabelTTF: 效率最低,LabelTTF 每次调用 setString (即改变文字)的时候,一个新的 OpenGL 纹理将会被创建。这意味着setString 和创建一个新的标签一样慢。TTF(TrueType Font) 是一种字库规范,是 Apple 公司和 Microsoft 公司共同推出的字体文件格式,随着windows的流行,已经变成最常用的一种字体文件表示方式。在 Windows Phone 中使用的时候,我们需要把字库文件保存在 Resources\fonts 文件夹下面,保证 Cocos2d-x 能够找到字体。
LabelTTF *label = LabelTTF::create("exp:+1234567", "Consolas", 40);
3.LabelBMFont : 效率也很高。是文字渲染标签类,CCLabelBMFont 类中的每个字都是一个 Sprite 类;实现方法跟LabelAtlas类似,需要一个.fnt和一个.png。png中包含所有我们用到的文字,fnt中是对这些文字的标记(在图片中的位置宽高便宜)。png和fnt的生成工具教程请参见http://www.cnblogs.com/haogj/p/3835258.html
LabelBMFont *label = LabelBMFont::create("hello world", "helloFont.fnt");
misc_nodes文件夹
1.CCClippingNode : 一般用于新手引导裁切节点。参考testCPP,如下效果也能做到
(来自http://www.zaojiahua.com/ccclipping.html)
2. CCMotionStreak: 实现拖拽效果,将一张图片拉伸渐隐。参考testCPP
3. CCRenderTexture:动态创建纹理,并且可以在游戏中重用这些纹理 ;渲染纹理;把渲染 texture(通过它的begin, end函数截取) 存储为 PNG或JPG格式;捕获 android 设备的 come to background/foreground 消息 ,来 存储/恢复 缓存对象;可以用此方法来设置残影