1. 纹理(Texture)

游戏角色的图像文件在使用前必须解压缩,并转换成 iPhone 和 iPad 的 GPU 可以理解的 格式,同时要加载进 RAM(随机存储器),这样的图像称为纹理。GPU 原生支持一系列压缩 格式,如 PVRTC,其他格式必须存储为未压缩的图像数据。OpenGL ES 可以使用这些数据 在屏幕上绘制图像,所使用的 PNG 图像文件虽然在闪存中不占用多少空间,但是因为要解压缩,所以会在内存中占用更大的空间。

2. 纹理图集(TextureAtlas)

对于 iPhone 和 iPad 设备而言,内存是非常宝贵的。而且 iOS 设备的 GPU 使用共享显存, 而不是独立显存,换句话说,GPU 将使用主系统的内存来存储纹理图和几何图形。旧版 iOS 设备的内存是 128MB。

让这种内存限制更捉襟见肘的是,旧版 iOS 设备中,图像填充到纹理中时,其长度和宽 度必须使用 2 的乘方。虽然 iPhone 3GS 和 iPhone 4、iPad 等设备支持非 2 的乘方大小的纹理 图,但在 Cocos2D 中,为了兼容所有设备,仍然使用 2 的乘方来填充纹理。当然,也可以在 ccConfig.h 文件中修改这一点。

为了节省内存空间,并减少纹理中的浪费空间,将把这些纹理拼合成为一个大的纹理图, 称为纹理图集。纹理图集只是一个大的纹理图而已,其中包含所有的图像。想象有一大张纸, 然后把自己的照片都贴在上面,在需要时从纸上把照片剪下来。如果想把所有照片一次性给 别人,只需给这一大张纸就行,而不需一张张地递过去。OpenGL ES 处理图像也是类似,如 果使用纹理图集或精灵表单(Spritesheet)把所有图像一次性交给 OpenGL ES 来处理,比把单 个图像逐个交给 OpenGL ES 处理要高效。

CCSpriteFrame 精灵帧

与我们之前了解的节点类不同,CCSpriteFrame 和 CCSpriteFrameCache 都直接继承自 Objective-C 中的 NSObject。

CCSpriteFrame(精灵帧)中主要包括 CCTexture2D 纹理、矩形大小,用来表示一个精灵。

Cocos2d 初学基本知识的更多相关文章

  1. 跳出初学MySQL知识的原理整理(一)

    一.基础架构 MySQL 可以分为 Server 层和存储引擎层两部分. Server 层包括连接器.查询缓存.分析器.优化器.执行器等,所有跨存储引擎 的功能都在这一层实现,比如存储过程.触发器.视 ...

  2. 【Cocos2d入门教程八】浅析Cocoss2d下的音频引擎及封装音频类

    Cocos2d-x提供了一个音频CocosDenshion引擎,CocosDenshion引擎可以独立于Cocos2d-x单独使用,CocosDenshion引擎本质上封装了OpenAL音频处理库.具 ...

  3. C++ 合成默认构造函数的真相

    对于C++默认构造函数,我曾经有两点误解: 类如果没有定义任何的构造函数,那么编译器(一定会!)将为类定义一个合成的默认构造函数. 合成默认构造函数会初始化类中所有的数据成员. 第一个误解来自于我学习 ...

  4. 编写Javascript类库(jQuery版

    编写Javascript类库(jQuery版) - 进阶者系列 - 学习者系列文章 Posted on 2014-11-13 09:29 lzhdim 阅读(653) 评论(1) 编辑 收藏 本系列文 ...

  5. vuejs和webpack项目(VueComponent)初尝试——瀑布流组件

    碎碎念:     好久不见,最近自己有些懈怠没更过多少博,主要原因之一是对自己学习方式的一些思考,翻看之前的博客多是记录学习笔记这反映出了自己对于前端还停留在学习-复习知识点的阶段压根没多少实践经验啊 ...

  6. mysql用户与权限管理笔记

    今天想使用一下李刚那本书上的hibernate的Demo,试出了点问题,过程中就发现mysql的用户管理和权限管理上也有点东西要注意,所以顺便就写一下mysql用户管理和权限管理的笔记. 先说一说my ...

  7. cocos2d-iphone 与 UI组件

    http://zhidao.baidu.com/link?url=v9d7y2doWqcPhKz1lz8TkO7ZQfslg-e-55JE0XP9VdKJ0vHobcLPEAXaXjD2lD-TGmg ...

  8. 【强烈推荐】可能是最适合你的 Java 学习路线和方法

    如遇链接无法打开,建议使用 https://github.com/Snailclimb/JavaGuide/blob/master/docs/questions/java-learning-path- ...

  9. 词向量 词嵌入 word embedding

    词嵌入 word embedding embedding 嵌入 embedding: 嵌入, 在数学上表示一个映射f:x->y, 是将x所在的空间映射到y所在空间上去,并且在x空间中每一个x有y ...

随机推荐

  1. HNOI2002

    对于当天的营业额,你要找到之前的数和他差的绝对值最小的和.由于这个是不断在插入的,所以用伸展树来维护. http://www.lydsy.com/JudgeOnline/problem.php?id= ...

  2. 【Matplotlib】图例分开显示

    作图时图例往往都会出现一个图例框内,如果需要不同类型的图例分别显示,比如显示两个图例. 基本上,出现两个图例的话,需要调用两次 legend .第一次调用,你需要将图例保存到一个变量中,然后保存下来. ...

  3. 如何查询Oracle中用户所有信息

    1.查看所有用户:   select * from dba_users;     select * from all_users;     select * from user_users;   2. ...

  4. Oracle DBA从小白到入职实战应用

    现如今Oracle依然是RDBMS的王者,在技术上和战略上,Oracle仍然一路高歌猛进,并且全面引领行业迈入了云时代,伴随着12cR2即将在2016年正式发布,学习Oracle之路依旧任重道远,目前 ...

  5. 如果你也和我一样,OSX反应慢,不妨试试这个

  6. mysql随机获取一条或者多条数据

    原文地址:http://www.im286.com/thread-7091552-1-1.html 转来备份 研究一些随机的因素,主要是讲究效率问题. 语句一: MYSQL手册里面针对RAND()的提 ...

  7. PHP大批量插入数据库的3种方法和速度对比

    第一种,使用insert into 插入,最后显示为:23:25:05 01:32:05 也就是花了2个小时多! $params = array(‘value'=>'50′); set_time ...

  8. QQ 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件

    QQ 编辑 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件.腾讯QQ支持在线聊天.视频通话.点对点断点续传文件.共享文件.网络硬盘.自定义面板.QQ邮箱等多种功 ...

  9. 转 XenServer、XenCenter安装测试

    本文转自:http://blog.sina.com.cn/s/blog_5611597901014ze4.html 系统环境:win7 64bit  vmware-8.0.1 镜像文件:XenServ ...

  10. win7下搭建PHP环境

    一.安装软件 1.apache下载地址:http://httpd.apache.org/download.cgi 2.php下载地址:http://windows.php.net/download/ ...