cocos2dx plist和batchNode总结
来源:互联网 发布:伴生活智能门禁 知乎 编辑:程序博客网 时间:2024/06/07 21:27
之前写过对sprite的理解,实际上就是对图片的加载,不可避免的要进行IO操作。那么如果项目中的图片使用的很多,那么就要进行多次的I/O,浪费cpu的资源。那我们很自然的就想到,是否可以将图片打包,一次性的加载进来呢? 这是可以的。我们可以使用TexturePacker工具,将图片进行打包成plist文件,然后直接加载plist文件就可以了。
1. 打包的图片是可以进行加密的,这样可以更好的保护自己的作品
3.如果对图片的质量要求高,建议使用image format中建议使用RGBA8888,最后一定要注意图片的大小最好是2的n次方,这样方便内存的加载。(因为显卡的内存是这样进行加载的,毕竟计算机底层实现是2进制的,虽然现在的计算机对显卡进行了优化,但是还是建议自己手动适配好图片大小,节省cpu资源)
4. 打包完成后,就可以直接加载了!加载前,我们可以先考虑下,因为这是个打包文件,占用的内存肯定不小,那么我们就不希望在游戏运行的时候进行加载,因为这样会造成游戏的卡,显然影响了游戏的用户体验。那么我们应该在什么时候加载呢? 一个是在程序开始的时候,一个做loading画面的时候,我觉得这2个时候,是最好的加载时机。
这样一句代码,就可以加载完成了
5. 此时加载完成了,只是完成了图片一次性放到内存,减少了I/O操作。还有openGL的渲染,此时还是对打包的图片中的各个小图片进行单个的渲染,也是会浪费GPU的资源的。我们可以通过CCBatchNode,告诉GPU一次性的渲染整个大图片就可以了。
6. 在cocos2d中CCBatchNode是要指定容量大小的(这里可以理解CCBatchNode是一个容器),但是在2dx中,可以查看源代码,是没有容器大小这个参数的,而是直接渲染打包图片。要注意这个不同点
7. 最后,因为现在图片都是CCBatchNode的child,所以他们的Zorder都是参照CCBatchNo的Zorder了!这个是必须要清楚的!
总结:
纹理就是一次性的将多个图片加载到内存中,并有对应小图片的位置信息,当需要使用其中某张小图片的时候,就直接在内存中调用,这样减少了I/O的操作。
- cocos2dx plist和batchNode总结
- 使用TexturePacker生成png和plist,在Cocos2dx中使用plist和png
- 使用TexturePacker生成png和plist,在Cocos2dx中使用plist和png
- cocos2dx 使用plist生成动画
- cocos2dx中的内存加载PLIST
- Cocos2dx使用 TexturePacker导出的.plist
- Cocos2dx使用 TexturePacker导出的.plist
- Cocos2dx使用 TexturePacker导出的.plist
- 在cocos2dx中解析plist文件
- cocos2dx plist中各个属性含义
- cocos2dx 解决异步加载plist的方法
- cocos2dx 新方法 实现多线程加载plist功能
- cocos2dx 使用plist保存账号信息
- Cocos2dx 3.1.1 之 plist制作动画
- Cocos2dx使用 TexturePacker导出的.plist
- 错误日志--2 cocos2dx,粒子系统,plist
- 【收集】cocos2dx中加载使用plist文件
- cocos2dx中读取.plist文件方法
- 用 ScrapySharp 下载天涯图片
- WPF显示GIF图像
- Windows Phone ListBox的分页加载
- 动态显示表数据解决方案
- memcached 在win下和linux下的安装
- cocos2dx plist和batchNode总结
- hibernate多对多中间表数据生成详解mappedBy
- linux如何查找文件并打印文件内容
- 常用自动生成语句
- 动态链接库的创建与使用
- poj3532求生成树中最大权与最小权只差最小的生成树+hoj1598俩个点之间的最大权与最小权只差最小的路经。
- CSS入门之列表样式用法及实例,list-style-image,list-style-type
- 针对某undefined对象的属性求值时遇到的错误
- winform窗体加背景图片后,控件闪烁