首先我們定義2個(gè)c++文件,一個(gè)是loadingScene.h, loadingScene.cpp
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供漯河網(wǎng)站建設(shè)、漯河做網(wǎng)站、漯河網(wǎng)站設(shè)計(jì)、漯河網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、漯河企業(yè)網(wǎng)站模板建站服務(wù),十余年漯河做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。首先我們?cè)?h里面我們定義我們的辦法
#include"cocos2d.h"
using namespace cocos2d;
class loadingScene:public Layer
{
public:
int nuberOfLoadedRes;//記錄當(dāng)前的進(jìn)度
CREATE_FUNC(loadingScene);
bool init();
static Scene *createScene();
void loadingResource();//加載資源
void loadingCallBack(Texture2D*obj);//加載資源的回調(diào)
void update(float t);
};
定義好了.H,然后我們?nèi)?shí)現(xiàn)這些方法
在.CPP里面。因?yàn)槲业馁Y源是從cocostudio里面制作的
所以我們這里就實(shí)現(xiàn)怎么把cocostudio制作的東西拿到cocos2d里怎么來(lái)用他
#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;
}
//顯示場(chǎng)景編輯器做好的場(chǎng)景
auto node=SceneReader::getInstance()->createNodeWithSceneFile("
publish/LoadingScene.json //要加載場(chǎng)景
")
node->setTag(1000);
this->addChild(node);
//先設(shè)置進(jìn)度條
Node *nodeScene=this->getChildByTag(1000);//場(chǎng)景根節(jié)點(diǎn)
comRender *render=(comRender*)(nodeScene->getChildByTag(10003))->getComponent("GUIComponent"));
Widget *widget=(cocos2d::ui::Widget*)(render->getNode());//得到UI層的根節(jié)點(diǎn)
loading *progressBar=(loadingBar*)(widget->getChildByTag(7));
progressBar->setPercent(0);
下面我們需要去實(shí)現(xiàn)在.H里面的加載資源的方法 ,然后我們?cè)趇nit()方法里面實(shí)現(xiàn)一下
//實(shí)現(xiàn)資源的加載
this->numberOfLoadedRes=0;//先初始化我們要加載的資源為0
loadingScene::LoadingResource();
this->scheduleUpdate();
return true;
}
void LoadingScene::LoadingResource()
{
SimpleAudioEngine::getInstance()->preloadBackgroundMusic(FileUtils::getInstance->
fullPathForFilenmae("需要加入的游戲音樂(lè)的名字".c_str());
numberOfLoadedRes++;
//加載所有的圖片幀
spriteFrameCache::getInstance()->addSpriteFramesWithFile("加入plist文件");
numberOfLoadedRes++;
// 紋理緩存--所有的圖片都可以放到紋理緩存中
Director::getInstance()->getTextureCache()->addImageAsync("需要加入的圖片",
CC_CALLBACK_1(loadingScene::loadingCallBack,this));
}
//加載資源的回調(diào)
void loadingScene::LoadingCallBack(Texture2D * obj)
{
numberOfLoadedRes++
這里我們用log打出我們加載的資源有沒(méi)有成功
log("資源加載:%d",numberOfLoadedRes);
}
這里我們更新下我們的進(jìn)度條
void loadingScene::update(float t)
{
float percent=(float)numberOfLoadedRes/(有多少資源)*100;
Node *nodeScene=this->getChildByTag(1000);//場(chǎng)景的根節(jié)點(diǎn)
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==(有多少資源))
{
這里就寫(xiě)你下載資源之后是跳轉(zhuǎn)場(chǎng)景呢還是干什么
}
}
忘記了告訴大家,上面那些Tag里面的數(shù)字,要是代碼里面沒(méi)有setTag的,那些Tag都cocostudio里面對(duì)象物體的標(biāo)簽 。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享標(biāo)題:coco2d-x實(shí)現(xiàn)Loading界面預(yù)加載資源-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article24/dedgce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、微信公眾號(hào)、網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、App開(kāi)發(fā)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容