亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

coco2d-x實現Loading界面預加載資源

發布時間:2020-06-17 09:45:21 來源:網絡 閱讀:605 作者:酷酷小喬 欄目:開發技術

首先我們定義2個c++文件,一個是loadingScene.h, loadingScene.cpp

首先我們在.h里面我們定義我們的辦法

#include"cocos2d.h"

using namespace cocos2d;

class loadingScene:public Layer

{

public:

int nuberOfLoadedRes;//記錄當前的進度

CREATE_FUNC(loadingScene);

bool init();

static Scene *createScene();

void loadingResource();//加載資源

void loadingCallBack(Texture2D*obj);//加載資源的回調

void update(float t);

};

定義好了.H,然后我們去實現這些方法

在.CPP里面。因為我的資源是從cocostudio里面制作的

所以我們這里就實現怎么把cocostudio制作的東西拿到cocos2d里怎么來用他

#include"loadingScene.h

#include"cocostudio/cocostudio.h"

#include"SimpleAudioEngie.h"  //這里是定義聲音的頭文件

using namespace CocosDenshion //這里是定義聲音的頭文件

using namespace cocostudio;

Scene *loadingScene::createScene()

{

   auto scene=Scene::create();

   auto layer=loadingScene::create();

   scene->addChild(layer);

   return scene; 

}


bool loadingScene::init()

{

if(!Layer::init())

{

return false;

}

//顯示場景編輯器做好的場景

auto node=SceneReader::getInstance()->createNodeWithSceneFile("

publish/LoadingScene.json //要加載場景

")

node->setTag(1000);

this->addChild(node);

//先設置進度條

Node *nodeScene=this->getChildByTag(1000);//場景根節點

comRender *render=(comRender*)(nodeScene->getChildByTag(10003))->getComponent("GUIComponent"));

Widget *widget=(cocos2d::ui::Widget*)(render->getNode());//得到UI層的根節點

loading *progressBar=(loadingBar*)(widget->getChildByTag(7));

progressBar->setPercent(0);

下面我們需要去實現在.H里面的加載資源的方法 ,然后我們在init()方法里面實現一下

//實現資源的加載

this->numberOfLoadedRes=0;//先初始化我們要加載的資源為0

loadingScene::LoadingResource();

this->scheduleUpdate();

return true;


}

void  LoadingScene::LoadingResource()

{

 SimpleAudioEngine::getInstance()->preloadBackgroundMusic(FileUtils::getInstance->

fullPathForFilenmae("需要加入的游戲音樂的名字".c_str());

numberOfLoadedRes++;

//加載所有的圖片幀

spriteFrameCache::getInstance()->addSpriteFramesWithFile("加入plist文件");

numberOfLoadedRes++;

//  紋理緩存--所有的圖片都可以放到紋理緩存中

Director::getInstance()->getTextureCache()->addImageAsync("需要加入的圖片",

CC_CALLBACK_1(loadingScene::loadingCallBack,this));

}

//加載資源的回調

void loadingScene::LoadingCallBack(Texture2D * obj)

{

numberOfLoadedRes++

這里我們用log打出我們加載的資源有沒有成功

log("資源加載:%d",numberOfLoadedRes);


}

這里我們更新下我們的進度條

void loadingScene::update(float t)

{

float percent=(float)numberOfLoadedRes/(有多少資源)*100;

Node *nodeScene=this->getChildByTag(1000);//場景的根節點

ComRender * render=(ComRender*)(nodeScene->getChildByTag(10003)->

               getComponent("GUIComponent"));

Widget *widget=(cocos2d::ui::Widget*)(render->getNode());

loadingBar *progressBar=(LoadingBar*)(widget->getChildByTag(7));

progressBar->setPercent(percent);

if(numberOfLoadedRes==(有多少資源))

{

  這里就寫你下載資源之后是跳轉場景呢還是干什么

}

}

忘記了告訴大家,上面那些Tag里面的數字,要是代碼里面沒有setTag的,那些Tag都cocostudio里面對象物體的標簽 。









向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌拉特前旗| 黔南| 平利县| 崇文区| 科技| 曲松县| 仪征市| 台中县| 四会市| 朔州市| 含山县| 广安市| 延川县| 库伦旗| 五大连池市| 成安县| 盖州市| 松江区| 明溪县| 太和县| 兴安县| 桂阳县| 信宜市| 佳木斯市| 福安市| 繁峙县| 张掖市| 马公市| 安顺市| 老河口市| 温州市| 乌兰察布市| 金乡县| 五台县| 惠来县| 闽清县| 杭锦后旗| 沙湾县| 郎溪县| 三亚市| 洪洞县|