第二节,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 ...
随机推荐
- sql语句分页代码
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO alter proc sp_SelectInfomationByKeyWord--创建一个存储过程 - ...
- OC - 21.CALayer核心要点及实例解析
CALayer基础 CALayer是每一个UI控件的核心,一个UI控件之所以能显示可以说是CALayer的功劳 每一个UI控件默认都为自己创建一个CALayer对象,通过drawRect方法将内容绘制 ...
- AFNetworking使用详解
导语: 众所周知,AFNetworking是目前IOS开发中非常受欢迎的第三方网络通信类库,同时AFNetworking对苹果官方NSURLConnection和NSURLSession进行了封装,使 ...
- 33.Spring整合Struts2.md
[toc] 1.搭建环境 在idea下可以在创建module时候选择,注意WEB-INF下的classes和lib两个目录需要手动创建,并且对应的配置文件和依赖的lib需要手动拷贝到这两个文件夹下 2 ...
- Android动画 fillAfter和fillBefore
fillBefore是指动画结束时画面停留在此动画的第一帧; fillAfter是指动画结束是画面停留在此动画的最后一帧. java代码设置如下: /*****动画结束时,停留在最后一帧******* ...
- Linux进程或线程绑定到CPU
Linux进程或线程绑定到CPU 为了让程序拥有更好的性能,有时候需要将进程或线程绑定到特定的CPU,这样可以减少调度的开销和保护关键进程或线程. 进程绑定到CPU Linux提供一个接口,可以将进程 ...
- C++ Primer 5th 第16章 模板与泛型编程
模板是C++中泛型编程的基础,一个模板就是创建一个类或者函数的蓝图或者说公式. C++模板分为函数模板和类模板. 类模板则可以是整个类是个模板,类的某个成员函数是个模板,以及类本身和成员函数分别是不同 ...
- js 得到当前季度
Date.prototype.getQuarter = function() { var month = this.getMonth(); if(month < 3) { return '第一季 ...
- jQuery操作cookie
验证jquery的cookie插件时才知道原先文件一直在桌面上放着执行发现没有效果,文件必须放在web服务器下面执行才会生效,晕菜! $.cookie(name,value,{expires: 7,p ...
- php网站判断用户是否是手机访问的方法
PHP网站判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面.随着移动设备的普及,网站也会迎来越来越多移动设备的访问.用适应PC的页面,很多时候对手机用户不友好,那么有些时候,我们需要 ...