现在的位置: 首页 > 综合 > 正文

1、引擎核心——渲染框架篇

2018年05月12日 ⁄ 综合 ⁄ 共 1388字 ⁄ 字号 评论关闭
本篇目标:理解渲染框架的设计思路、各关键节点的属性和方法。

a、根源种子:Node类,包括3个明显特点:
1、包含Node类对象做为子节点,对应的方法:addChild、getChildByTag、removeChild等;
2、每个类及子类都可以使用定时器,对应方法:schedule、unschedule等;
3、所有的Node类及子类都能执行动作,对应方法:runAction、stopAction等。

b、Node子类通常需要改变3个内容:1、类对象初始化的方式及内容;
2、编写时间回调方法;
3、重载绘制方法。

c、Node类还包括:1、坐标系转换相关的方法;
2、碰撞判断相关的方法。

Node类的属性:
Node属性: 描述 初始值
position 位置 0,0
scale(x,y) 缩放尺寸 1,1
rotation(in degrees,clockwise) 旋转角度 0
Camera 摄像机朝向 对象
GridBase 模型网格 对象
anchor point 锚点 0,0
size 尺寸 1,1
visible 是否可见 TRUE
z-order z坐标 0
openGL z position openGL Z 坐标 0


Scene类:
Scene继承Node类,是众多Node节点的载体。与场景切换相关的方法:onEnter、onEnterTransitionDidFinsh、onExit、onExitTransitionDidFinsh,其中onEnter和onExit必然在场景转换过程中的某个时间点调用,而另外两个只有在使用场景切换的特效TransitionScene时候调用。切记每个方法必须调用父类中相同的方法,否则会导致触摸信息丢失以及内存泄漏问题。

6.29总结:了解核心渲染的设计思路:Node做为根源节点,抽象出了整个引擎中其他子Node共有特性,定义了基础属性和方法供整个引擎子类继承,子类通过定义自己的个性化属性和方法,并实现了定时调度和执行动作等来实现丰富易用的游戏功能。引擎中众多子类的管理者就是secne类,scene类继承Node。
SpriteBatchNode类:继承Node和TextureProtocol类。其子类包括:LabelBMFont和TMXLayer。限制条件:1、只能接受精灵对象为子节点。2、所有的精灵对象必须使用同一张纹理图片。使用场景:1、需要显示两个或者更多个相同的精灵对象时使用,节点越多,节省的效率越大。2、当在同一个场景中存在很多独立的精灵对象时,可以将他们整理为一张纹理。缺点:1、所有的子节点处于同一个画面层次,无法添加其他精灵。2、系统平台通常对纹理图片的尺寸限制。
static SpriteBatchNode * create(Texture2D* tex,unsigned int capacity=29)
static SpriteBatchNode * create(const char* fileImage,unsigned int capacity=29)

SpriteFrameCache和SpriteFrame特点:1、SpriteFrmae继承Ref类,不是继承Node类,所以无法绘制,不能加入到节点链表中。2、持有一个纹理对象,对精灵对象动画提供支持,SpriteFrame使得纹理载入内存和生成精灵对象分离,使得对精灵控制更加自由,对内存管理控制更好。3、支持从配置文件中加载。



抱歉!评论已关闭.