cocos2.2.3引擎libcocos2d中类的介绍

一目了然的不做介绍。

有一篇类似的博文可供参考: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格子动态效果

CCGrid

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,如下效果也能做到

CCClippingNode遮罩解析(来自http://www.zaojiahua.com/ccclipping.html

2. CCMotionStreak: 实现拖拽效果,将一张图片拉伸渐隐。参考testCPP

3. CCRenderTexture:动态创建纹理,并且可以在游戏中重用这些纹理 ;渲染纹理;把渲染 texture(通过它的begin, end函数截取) 存储为 PNG或JPG格式;捕获 android 设备的 come to background/foreground 消息 ,来 存储/恢复 缓存对象;可以用此方法来设置残影




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值