cocos2dx 加載資源

resCount resTotal為文件統(tǒng)計(jì)申钩,resTotal需在init中賦值次绘,賦值大小必須與pathList文件夾下文件總和相等,否則會(huì)加載不全典蜕。
pathList中的路徑為相對(duì)Resources文件夾下的路徑断盛,所以為了方便起見(jiàn),不建議在Resources下直接存放資源文件

頭文件

#ifndef LoadingScene_hpp
#define LoadingScene_hpp

#include <stdio.h>
#include "cocos2d.h"
class LoadingScene : public cocos2d::Layer
{
private:
    unsigned int resCount;
    unsigned int resTotal;
    std::list<std::string> pathList;
public:
    static cocos2d::Scene* createScene();
    virtual bool init();
    std::list<std::string> getFilesFromPath(std::string path);
    void loadResources();
    void loadCallback(cocos2d::Ref* pSender);

    CREATE_FUNC(LoadingScene);
};

#endif /* LoadingScene_hpp */

源文件

#include "LoadingScene.hpp"
//以下是遍歷文件所需頭文件
#include <sys/stat.h>
#include "dirent.h"
#include "unistd.h"

USING_NS_CC;

Scene* LoadingScene::createScene()
{
    auto scene = Scene::create();
    auto layer = LoadingScene::create();
    scene->addChild(layer);
    return scene;
}
bool LoadingScene::init()
{
    resCount = 0;
    resTotal = 100;
    pathList.clear();
    pathList.push_back("images");
    pathList.push_back("images/images2");
    this->loadResources();
    return true;
}
std::list<std::string> LoadingScene::getFilesFromPath(std::string path)
{
    std::list<std::string> files;
    std::string filePath = FileUtils::getInstance()->fullPathForFilename(path);
    DIR *dp;
    struct dirent *entry;
    struct stat statbuf;
    dp=opendir(filePath.c_str());
    chdir(filePath.c_str());
    while((entry=readdir(dp))!=NULL)
    {
        stat(entry->d_name,&statbuf);
        if(!S_ISREG(statbuf.st_mode))
            continue;
        files.push_back(path+"/"+entry->d_name);
    }
    return files;
}
void LoadingScene::loadResources()
{
    CCLOG("start loading");
    while(pathList.size()>0)
    {
        std::list<std::string> files=getFilesFromPath(pathList.back());
        while(files.size()>0)
        {
            Director::getInstance()->getTextureCache()->addImageAsync(files.back(), CC_CALLBACK_1(LoadingScene::loadCallback, this));
            CCLOG("loading %s",files.back().c_str());
            files.pop_back();
        }
        pathList.pop_back();
    }
}
void LoadingScene::loadCallback(cocos2d::Ref *pSender)
{
    resCount++;
    if (resCount == resTotal)
    {
        //加載完成就切換場(chǎng)景
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末愉舔,一起剝皮案震驚了整個(gè)濱河市钢猛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轩缤,老刑警劉巖命迈,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異火的,居然都是意外死亡壶愤,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門馏鹤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)征椒,“玉大人,你說(shuō)我怎么就攤上這事湃累〔龋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵治力,是天一觀的道長(zhǎng)蒙秒。 經(jīng)常有香客問(wèn)我,道長(zhǎng)宵统,這世上最難降的妖魔是什么晕讲? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上瓢省,老公的妹妹穿的比我還像新娘弄息。我一直安慰自己,他們只是感情好净捅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布疑枯。 她就那樣靜靜地躺著,像睡著了一般蛔六。 火紅的嫁衣襯著肌膚如雪荆永。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天国章,我揣著相機(jī)與錄音具钥,去河邊找鬼。 笑死液兽,一個(gè)胖子當(dāng)著我的面吹牛骂删,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播四啰,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼宁玫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了柑晒?” 一聲冷哼從身側(cè)響起欧瘪,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎匙赞,沒(méi)想到半個(gè)月后佛掖,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涌庭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年芥被,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坐榆。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拴魄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出席镀,到底是詐尸還是另有隱情羹铅,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布愉昆,位于F島的核電站,受9級(jí)特大地震影響麻蹋,放射性物質(zhì)發(fā)生泄漏跛溉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芳室。 院中可真熱鬧专肪,春花似錦、人聲如沸堪侯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)伍宦。三九已至芽死,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間次洼,已是汗流浹背关贵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卖毁,地道東北人揖曾。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像亥啦,于是被迫代替她去往敵國(guó)和親炭剪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容