cocos2dx3.2格斗类游戏加载界面
先看效果图:
cocos2dx使用版本:cocos2dx3.2 IDE:使用VS2013
下载游戏引擎自不用说了。
使用命令行创建项目。
cocosnewGeDou-pcom.zhenqi.game-lcpp-dF:\cocos2d-xProject
而后使用vs2013打开,并创建一个加载层。
LoadingScene.h内容如下:#ifndef__LOADING_SCENE_H__#define__LOADING_SCENE_H__#include"ui/CocosGUI.h"#include"cocos2d.h"USING_NS_CC;classLoading:publicLayer{public:staticScene*createScene();virtualboolinit();//设置进度条voidSetPro(floatfRate);//资源预加载voidLoadRec();//资源预加载回调函数voidOnLoadArmatureData(floatpercent);//资源加载回调voidOnLoadRecCallBack(Object*pObj);CREATE_FUNC(Loading);protected:intm_nLoadRecNum;//资源加载数intm_nLoadRecTotalNum;//资源加载总数ui::LoadingBar*pProLoadRec;//进度条};#endif//__LOADING_SCENE_H__
LoadingScene.cpp 实现类如下:
#include"LoadingScene.h"#include"ChooseHero.h"#include"ui/CocosGUI.h"#include"cocostudio/CocoStudio.h"usingnamespacecocostudio;Scene*Loading::createScene(){//'scene'isanautoreleaseobjectautoscene=Scene::create();//'layer'isanautoreleaseobjectautolayer=Loading::create();//addlayerasachildtoscenescene->addChild(layer);//returnthescenereturnscene;}boolLoading::init(){if(!Layer::init()){returnfalse;}SizevisibleSize=Director::getInstance()->getVisibleSize();Vec2origin=Director::getInstance()->getVisibleOrigin();Sizesize=Director::getInstance()->getWinSize();/************************************************************************//*背景图片*//************************************************************************///人物图片autopPersonBg=Sprite::create("ui/loading_bg.png");pPersonBg->setPosition(ccp(size.width*0.5f,size.height*0.5f));addChild(pPersonBg,100);//创建logo图autopLogo=Sprite::create("ui/logo_bg.png");pLogo->setScale(0.95f);pLogo->setPosition(ccp(size.width*0.5f,410));addChild(pLogo,100);/************************************************************************//*进度条*//************************************************************************///创建加载进度条背景autopProBg=Sprite::create("ui/loading_progress_bg.png");pProBg->setPosition(ccp(size.width*0.5f,100));addChild(pProBg,100000);pProLoadRec=ui::LoadingBar::create("ui/loading_progress_bar.png");pProLoadRec->setPosition(pProBg->getPosition());pProLoadRec->setDirection(ui::LoadingBar::Direction::LEFT);pProLoadRec->setPercent(0);addChild(pProLoadRec,100001,1);//同时设置Tag值为1autopLight=Sprite::create("ui/loading_progress_light.png");addChild(pLight,300000,2);pLight->setPosition(ccp(pProLoadRec->getPositionX()-pProLoadRec->getContentSize().width*0.5f,pProLoadRec->getPositionY()));m_nLoadRecNum=0;m_nLoadRecTotalNum=16;//预加载本层资源LoadRec();returntrue;}voidLoading::SetPro(floatfRate){do{pProLoadRec->setPercent(fRate*100);//同步光点autopLight=dynamic_cast<Sprite*>(getChildByTag(2));if(pLight!=NULL)pLight->setPositionX(pProLoadRec->getPositionX()+pProLoadRec->getContentSize().width*(fRate-0.5f));//若加载完成if(fRate>=1){autopDicLang=Dictionary::createWithContentsOfFile("ui_xml/loading_xml.xml");//得到加载信息labelautopStrLoading=dynamic_cast<String*>(pDicLang->objectForKey("loading_end"));autopLabelLoading=dynamic_cast<LabelTTF*>(getChildByTag(3));//pLabelLoading->setString(pStrLoading->getCString());}return;}while(false);//CCLog("FunCNFLoadingLayer::SetProError!");}//资源预加载voidLoading::LoadRec(){TextureCache::getInstance()->addImageAsync("ui/serverselect_bg.png",CC_CALLBACK_1(Loading::OnLoadRecCallBack,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/kulougongshou.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/kulouzhanshi.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/mayi.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/bianyikunchong.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/bubing.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/xiaoyin.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/NewProject.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/minren1.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/kulou_arrow.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/naili.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/NPC_kakaxi.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/portal.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/hited_light.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/public_casting.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));ArmatureDataManager::getInstance()->addArmatureFileInfoAsync("armature/skill_light_1.ExportJson",this,schedule_selector(Loading::OnLoadArmatureData,this));}voidLoading::OnLoadArmatureData(floatpercent){m_nLoadRecNum++;SetPro((float)m_nLoadRecNum/(float)m_nLoadRecTotalNum);if(m_nLoadRecNum==m_nLoadRecTotalNum){//延迟1秒//Director::getInstance()->replaceScene(ChooseHero::createScene());}if(percent>=1){//CCLog("addArmatureFileInfoAsyncover");}}voidLoading::OnLoadRecCallBack(Object*pObj){do{m_nLoadRecNum++;SetPro((float)m_nLoadRecNum/(float)m_nLoadRecTotalNum);if(m_nLoadRecNum==m_nLoadRecTotalNum){//延迟1秒//Director::getInstance()->replaceScene(ChooseHero::createScene());}return;}while(false);//CCLog("FunCNFLoginScene::OnLoadRecCallBackError!");}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。