第二节,CCSpriteBatchNode CCSpriteFrameCache

1,CCSpriteBatchNode 精灵集合类

其中Batch的英文含义是一批,一群的意思。他的对象常常包含了许多的精灵对象,这些精灵对象有一个共同的特点,那就是使用同一张文理图片。虽然是同一个纹理图片,但是每一个精灵所占矩形区域是不同的。

精灵集合类的对象通常包含很多歌子节点(可能是多个层次),这些子节点都是精灵对象。将他们集合在一起的好处是,在绘制时只需要OpenGL ES渲染器运行一次。本来需要成千上百度额绘制,而现在只需要绘制一次,并且在画面上没有什么缺失。

精灵集合类的对象有且仅有一张图片,只有使用这张纹理图片的精灵对象才能被加载,成为精灵集合对象的子节点。按照openGL ES的运行原理,同一张纹理绘制只需要操作一次。OpenGL ES渲染器的运行原理就是把必要的信息传递给图形处理硬件,让后将整个或者部分图形渲染的过程,一个单独的精灵对象在绘制时都要调用一次渲染方法,每次调用渲染方法都需要渲染器执行一次,这就会导致系统开销的增加。

使用范围:当游戏中需要显示两个或者更多的相同的精灵对象时,可以使用集合类,将精灵对象组合在一起。

按照OpenGL ES的要求,纹理的大小尺寸必须满足“2的N次方”,对于不符合规则的图标,系统会自动调节他们的大小。这样会占用更大内存空间。比如:140pxX600px像素的图片,如果把它们放到内存中,他们的大小将会变成256X1024.

2,CCSpriteFrameCache 精灵帧缓冲

就是一个存放精灵帧(CCSpriteFrame)对象的缓冲池。精灵帧是一个非常简单的对象,他不需要绘制,他的作用主要在于持有一个纹理对象,为精灵对象提供动画的支持。

精灵帧缓冲中包含了当前有游戏画面中使用的精灵帧,其中有些纹理图片是来自一张组合的纹理图片,也有一些是单独的纹理图片。精灵缓冲帧为开发这提供了一个管理纹理图片的简介途径,开发者可以选择何时将纹理图片加载入内存中。当直接用精灵缓冲池中的精灵帧创建精灵对象时无需在进行文件和内存的操作。精灵帧缓冲支持以配置文件的方式来加载文件。

原文地址:https://www.cnblogs.com/suncoolcat/p/3299484.html