第二节,CCSpriteBatchNode CCSpriteFrameCache
1,CCSpriteBatchNode 精灵集合类
其中Batch的英文含义是一批,一群的意思。他的对象常常包含了许多的精灵对象,这些精灵对象有一个共同的特点,那就是使用同一张文理图片。虽然是同一个纹理图片,但是每一个精灵所占矩形区域是不同的。
精灵集合类的对象通常包含很多歌子节点(可能是多个层次),这些子节点都是精灵对象。将他们集合在一起的好处是,在绘制时只需要OpenGL ES渲染器运行一次。本来需要成千上百度额绘制,而现在只需要绘制一次,并且在画面上没有什么缺失。
精灵集合类的对象有且仅有一张图片,只有使用这张纹理图片的精灵对象才能被加载,成为精灵集合对象的子节点。按照openGL ES的运行原理,同一张纹理绘制只需要操作一次。OpenGL ES渲染器的运行原理就是把必要的信息传递给图形处理硬件,让后将整个或者部分图形渲染的过程,一个单独的精灵对象在绘制时都要调用一次渲染方法,每次调用渲染方法都需要渲染器执行一次,这就会导致系统开销的增加。
使用范围:当游戏中需要显示两个或者更多的相同的精灵对象时,可以使用集合类,将精灵对象组合在一起。
按照OpenGL ES的要求,纹理的大小尺寸必须满足“2的N次方”,对于不符合规则的图标,系统会自动调节他们的大小。这样会占用更大内存空间。比如:140pxX600px像素的图片,如果把它们放到内存中,他们的大小将会变成256X1024.
2,CCSpriteFrameCache 精灵帧缓冲
就是一个存放精灵帧(CCSpriteFrame)对象的缓冲池。精灵帧是一个非常简单的对象,他不需要绘制,他的作用主要在于持有一个纹理对象,为精灵对象提供动画的支持。
精灵帧缓冲中包含了当前有游戏画面中使用的精灵帧,其中有些纹理图片是来自一张组合的纹理图片,也有一些是单独的纹理图片。精灵缓冲帧为开发这提供了一个管理纹理图片的简介途径,开发者可以选择何时将纹理图片加载入内存中。当直接用精灵缓冲池中的精灵帧创建精灵对象时无需在进行文件和内存的操作。精灵帧缓冲支持以配置文件的方式来加载文件。
第二节,CCSpriteBatchNode CCSpriteFrameCache的更多相关文章
- android内部培训视频_第二节 布局基础
第二节:布局入门 一.线性布局 需要掌握的属性: 1.orientation:排列方式 vertical:垂直 Horizontal:水平 2.weight:水平布局的权重 3.gravity:子控件 ...
- seajs第二节,seajs各模块依赖关系
index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...
- 学习javascript基础知识系列第二节 - this用法
通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...
- VUE2.0实现购物车和地址选配功能学习第二节
第二节 创建VUE实例 购物车项目计划: 1.创建一个vue实例 2.通过v-for指令渲染产品数据 3.使用filter对金额和图片进行格式化 4.使用v-on实现产品金额动态计算 5.综合演示 ① ...
- 第二节 安装CentOS
Linux 第二节一.安装VNware workstation 10二.安装CentOS 1.root/123456 用户登录[root@localhost ~]# 2.关机 init 0 3.ifc ...
- 源码讲解 node+mongodb 建站攻略(一期)第二节
源码讲解 node+mongodb 建站攻略(一期)第二节 上一节,我们完成了模拟数据,这次我们来玩儿真正的数据库,mongodb. 代码http://www.imlwj.com/download/n ...
- 第二节:Web前端-ASP.NET之C#基础
第二节:Web前端-ASP.NET之C#基础 学习ASP.NET,要掌握学习语言,控件等技能, <div style="text-align: center; line-height: ...
- 【精编重制版】JavaWeb 入门级项目实战 -- 文章发布系统 (第二节)
说明 本教程是,原文章发布系统教程的精编重制版,会包含每一节的源码,以及修正之前的一些错误.因为之前的教程只做到了评论模块,很多地方还不完美,因此重制版会修复之前的一些谬误和阐述不清的地方,而且,后期 ...
- Ionic 入门与实战之第二章第二节:Ionic 环境搭建之 Ionic Lab 使用
原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第二节,主要对 Ionic Lab 工具作了介绍,并讲解了其使用方法,这也是一个开发 Ionic 比较好的调试工具. 原文发表于 ...
- QQ登录整合/oauth2.0认证-03-对第二节的代码改进
---------------------------目录---------------------------------- QQ登录整合/oauth2.0认证-01-申请appkey和appid ...
随机推荐
- Linux下登陆mysql服务器不需要输入账号密码信息
linux下登录mysql服务器一般都是在命令行手动输入链接信息 [root@localhost ~]# mysql -hlocalhost -uroot -p11111 而在mysql 5.6之后版 ...
- centos node卸载
1.通过包管理工具 如果是通过包管理工具安装的话,那就和包管理工具卸载 yum remove nodejs npm -y 2.手动 如果是通过手动安装:官方下载后安装 进入到安装的路径 cd /opt ...
- javascript定义变量和优先级的问题
本文链接: javascript定义变量和优先级的问题.转载请保留. 看下面的代码: if (!("aa" in window)) { alert('oh my god'); ...
- jQuery 做好七件事帮你提升jQuery的性能
1. Append Outside of Loops 凡是触及到DOM都是有代价的.如果你向DOM当中附加大量的元素,你会想一次性将它们全部附加进来,而不是分多次进行.当在循环当中附加元素就会产生一个 ...
- OOCSS学习(二)
OOCSS —— 面向对象CSS 5.CSS团队精神:CSS最佳团队开发 在本文中,你将学习书写CSS的最佳实践来帮助你避免不一致和冗余;实际上,这样制定标准,简化了团队开发的工作. 1)结构化 (根 ...
- gchart 插件API
data: 一个二维数组,参数类型如下:[[, , ], [, , ], [, , ]] size: 图片显示的大小 ( width x height ) 300x200 type: 前面已经说过了 ...
- python模块之json序列化
31.序列化: 1.json实现序列化,json.dumps()和json.loads(). >>> s1 = {'k1':'v1','k2':'v2' ...
- Sample rate 理解
在Gnuradio中,我们可以看到很多模块中都有Sample rate 这个概念 然后看到一个说明 Any processing block's 'Sample Rate' parameter is ...
- 素数判定 AC 杭电
素数判定 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 多目标遗传算法 ------ NSGA-II (部分源码解析) 目标函数值计算 eval.c
这部分比较简单,具体的函数数值计算是需要调用设定的目标函数的,此部分一个不能忽略的问题是 超出限制条件的处理 , 故对此加以解释. 首先是包装函数, 核心操作调用 evaluate_ind 实现 ...