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數據的支持。數據庫