该博客为原创博客,转载请保留原始地址:http://blog.csdn.net/kantian_/article/details/21184609
游戏中什么最占用内存,毋庸置疑绝对是纹理,用mac开发的同学如果有洁癖一定用过Xcode自带的内存分析工具,你可以发现大部分内存里面存的都是纹理(简单理解就是图片啦)。如果为了减少内存使用而增加加载次数势必会令游戏不流畅,如果一次性加载很多纹理又会消耗掉更多内存,所以内存的载入时间和量都是非常值得研究的一个事情。限于笔者水平限制以及该游戏的简单性,这里其实只是冰山一角。回到这个游戏,该游戏所用到的素材不多,一张1024x1024的大图可以容纳下所有的素材还有的多,所以这里我们可以在游戏一开始全部载入。
载入的资源包括图片素材的载入和音乐素材的载入。图片的载入一定是一个异步操作,cocos2dx本身就提供了一个异步载入纹理的接口:
// start ansyc method load the atlas.png
Director::getInstance()->getTextureCache()->addImageAsync("atlas.png",CC_CALLBACK_1(LoadingScene::loadingCallBack,this));
TextureCache这个类里面的addImageAsync的方法便是一个异步加载图片纹理的方法,第一个参数是图片的名字(你放在Resource里面的图片),第二个参数便是图片异步加载完成之