Cocos2d-x开发中关于资源的预加载的一点补充

Cocos2d-x开发中关于资源的预加载的一点补充

对于像我这样的COCOS2D-X初使用者来讲,资源什么时候须要预加载?在什么样的状况下须要?等等,这都是一些问题。

Cocos2d-x框架中提供了使用preloadEffect方法预加载声音文件,以及提供CCTextureCache::sharedTextureCache()->addImageAsync方法用来预加载图像文件。


在框架提供的DEMO中,有的使用了预加载图像文件技术,有的没有。看起来,初步的结果是在场景中使用大量图像时才有必要预加载。相信大多数同志都确定这一点。


在我如今编写的一个简单的背单词软件(练习而已)中,就证实了上述结论。

例如,个人软件中有一个场景用于实现相似于实现射击方式选择正确的汉语意义,以便提供背单词的乐趣。其中除了一个800X480的背景外,还使用10个左右的小图片,天然也有一个粒子系统。

如今,我遇到的问题是,如何不使用上述异步预先加载方法,在个人I9100上,出现混乱现象(相信你能理解其中的意思),即相似于内存不够时的有时这样有时那样的现象。

在我充分确定了不存在内存漏洞(包括在启动到此场景过程当中相关的几个场景)的前提下,我使用了上述异步预先加载方法,结果一切正常了(是否绝对,我还不能确定)。

我是受到以下文章启发,才使用上述技巧的。


How to preload your game assets in loading scene

URL: http://xperienced.com.pl/blog/how-to-preload-your-game-assets-in-loading-scene

其中提到很关键的一句话:

If you are building a game for an iPhone then most probably, at some point of time, you will realize that you need a loading screen in which some (or even all) of your game assets should be preloaded. If you are not going to preload it but rather load it on demand, then you might experience some performance issues when a resource is initially loaded.


固然,在个人上述场景中使用了SQLITE技术加载数据库中数据,也多是致使采用上述办法的重要缘由之一。遗憾的是,目前COCOS2D-X并无提供有关于异步加载SQLITE数据的支持。数据库