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 纹理、矩形大小,用来表示一个精灵。

最新文章

  1. Oracle-ARCGIS-SDE 数据整合遇到的问题
  2. VS2012/2013/2015关闭单击文件进行预览的功能
  3. 关于Socket建立长连接遇到的bug信息
  4. JS案例之1——pager 分页
  5. 1.Nexus安装与配置
  6. Hadoop2安装
  7. [转]使用CSS3 Grid布局实现内容优先
  8. Less和Sass编译
  9. 【Cocos2d-X开发学习笔记】第09期:渲染框架之菜单类(CCMenu)的使用
  10. 如何在浏览器网页中实现java小应用程序的功能
  11. php索引数组转成关联数组
  12. spring学习总结——装配Bean学习四(导入和混合配置)
  13. Markdown介绍
  14. springmvc 跳转页面或者返回json
  15. nio实现原理
  16. 安装Window 10系统------计算机经验
  17. Android 播放Gif 动画
  18. (转)vmware下给linux虚拟机扩容
  19. django-restful风格
  20. 在net中json序列化与反序列化

热门文章

  1. hdu1535 SPFA
  2. RHCS
  3. BZOJ-1477 青蛙的约会 拓展欧几里德
  4. Bootstrap Modals(模态框)
  5. 透透彻彻IoC(你没有理由不懂!)
  6. eclipse错误:Unable to read workbench state. Workbench UI layout will be reset.XML document structures
  7. hdu 1008 Elevator
  8. linux下python版webshell后门查杀工具
  9. win7下virtualbox装linux共享win7文件问题(已测试可用)
  10. HTTP 304 的理解