溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Cocos2d-x開發(fā)中關(guān)于資源的預(yù)加載的一點(diǎn)補(bǔ)充

發(fā)布時(shí)間:2020-07-30 20:26:18 來源:網(wǎng)絡(luò) 閱讀:892 作者:googlingman 欄目:游戲開發(fā)

Cocos2d-x開發(fā)中關(guān)于資源的預(yù)加載的一點(diǎn)補(bǔ)充

對(duì)于像我這樣的COCOS2D-X初使用者來說,資源何時(shí)需要預(yù)加載?在什么樣的情況下需要?等等,這都是一些問題。

Cocos2d-x框架中提供了使用preloadEffect方法預(yù)加載聲音文件,以及提供CCTextureCache::sharedTextureCache()->addImageAsync方法用來預(yù)加載圖像文件。


在框架提供的DEMO中,有的使用了預(yù)加載圖像文件技術(shù),有的沒有??雌饋?,初步的結(jié)果是在場(chǎng)景中使用大量圖像時(shí)才有必要預(yù)加載。相信大多數(shù)同志都肯定這一點(diǎn)。


在我現(xiàn)在編寫的一個(gè)簡(jiǎn)單的背單詞軟件(練習(xí)而已)中,就證明了上述結(jié)論。

例如,我的軟件中有一個(gè)場(chǎng)景用于實(shí)現(xiàn)類似于實(shí)現(xiàn)射擊方式選擇正確的漢語意義,以便提供背單詞的樂趣。其中除了一個(gè)800X480的背景外,還使用10個(gè)左右的小圖片,自然也有一個(gè)粒子系統(tǒng)。

現(xiàn)在,我遇到的問題是,如何不使用上述異步預(yù)先加載方法,在我的I9100上,出現(xiàn)混亂現(xiàn)象(相信你能理解其中的意思),即類似于內(nèi)存不夠時(shí)的有時(shí)這樣有時(shí)那樣的現(xiàn)象。

在我充分肯定了不存在內(nèi)存漏洞(包括在啟動(dòng)到此場(chǎng)景過程中相關(guān)的幾個(gè)場(chǎng)景)的前提下,我使用了上述異步預(yù)先加載方法,結(jié)果一切正常了(是否絕對(duì),我還不能肯定)。

我是受到如下文章啟發(fā),才使用上述技巧的。


How to preload your game assets in loading scene

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

其中提到很關(guān)鍵的一句話:

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.


當(dāng)然,在我的上述場(chǎng)景中使用了SQLITE技術(shù)加載數(shù)據(jù)庫中數(shù)據(jù),也可能是導(dǎo)致采用上述辦法的重要原因之一。遺憾的是,目前COCOS2D-X并沒有提供有關(guān)于異步加載SQLITE數(shù)據(jù)的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI