加载界面

#define SPLASHLAYER_H_

#include "cocos2d.h"

class SplashLayer : public cocos2d::CCLayer {
 public:
  static cocos2d::CCScene *scene();
  virtual bool init();
  CREATE_FUNC(SplashLayer);

 private:
  // 加载资源
  void LoadResource(float dt);

  // 加载特效声音们
  void LoadEffectMusic(float dt);

  // 加载背景音乐们
  void LoadBgMusic(float dt);

  // 加载plist们
  void LoadPlist(float dt);

  // 开始跳转到主菜单页
  void StartGoToMainPage(float dt);

 private:
  cocos2d::CCProgressTimer *loading_prog_;  // 加载的前景文字
};

#endif // SPLASHLAYER_H_




#include "splashlayer.h"
#include "Util/WindowUtil.h"
#include "GamePage.h"
#include "mainpage/mainpage.h"
#include "themepage/themepage.h"
#include "themepage/mainmap.h"
#include "themepage/chaptermanager.h"
#include "common/datamanager.h"
#include "Util/multilanguageutil.h"
#include "Util/MusicUtil.h"
USING_NS_CC;

// 进度条值
static float s_cur_percent = 0;

// 资源们的命名空间
// 把他们弄成一个命名空间仅仅是为了在vs下可以折叠起来
namespace resource {

// 声音特效文件们
const char * kEffectArr[10] = {

};

// 背景音乐文件们
const char * kBgmusicArr[10] = {

};

// plist们
const char * kPlistArr[] = {
    "bbb.plist"
};

// 每加载完成一个音效资源进度条加的值
const float kAddValuePerEffect = 1.8f;

// 每加载完成一个背景音乐资源进度条加的值
const float kAddValuePerBgMusic = 3.5f;

// 每加载完成一个plist进度条加的值
const float kAddValuePerPlist = 2.0f;

};
using namespace resource;

CCScene *SplashLayer::scene() {
  CCScene *scene = CCScene::create();
  scene->addChild(SplashLayer::create());
  return scene;
}

bool SplashLayer::init() {
  bool ret_value = false;
  do {
    CC_BREAK_IF (!CCLayer::init());
    // 初始化窗口缩放
    util::WindowUtil::DoInit();
    MultilanguageUtil::initAllStringFromXML();
    // 初始化数据管理类
    datamanager::DoInit();
    datamanager::GuideDataManage::SetTimePlayGame(datamanager::GuideDataManage::GetTimePlayGame()+1);
    util::MusicUtil::DoInit();
    util::MusicUtil::PreloadBackgroundMusic("music/bg.ogg");
    util::MusicUtil::PreloadBackgroundMusic("music/bg1.ogg");
    // 章节数据的初始化
    ChapterManager::SharedInstance()->InitChapteres();
    // 背景
    CCSprite *bg = CCSprite::create("LOADING.png");
    bg->setPosition(ccp(WIDTH / 2, HEIGHT / 2));
    bg->setScaleX(SCALE_X);
    bg->setScaleY(SCALE_Y);
    addChild(bg);
    //电话标签
    //CCLabelTTF *x_label_ = CCLabelTTF::create("客服电话**********", "font/fzzzh.ttf", 30);
    //x_label_->setPosition(ccp(WIDTH / 2,30));
    //x_label_->setColor(ccc3(0xff,0xff,0xff));
    //addChild(x_label_);
    //CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("bbb.plist");
    // 开始加载资源
    scheduleOnce(schedule_selector(SplashLayer::LoadResource), 0);
    ret_value = true;
  } while (0);
  return ret_value;
}

void SplashLayer::LoadResource(float dt) {
  // 开始加载资源
  schedule(schedule_selector(SplashLayer::LoadEffectMusic));
}

void SplashLayer::LoadEffectMusic(float dt) {
  static int s_index = 0;
  if (s_index == sizeof(kEffectArr) / sizeof(kEffectArr[0])) {
    unschedule(schedule_selector(SplashLayer::LoadEffectMusic));
    schedule(schedule_selector(SplashLayer::LoadBgMusic));
  } else {
    // 把音效资源加载到音乐util
    // 设音效置进度条百分比
      s_index++;
  }
}

void SplashLayer::LoadBgMusic(float dt) {
  static int s_index = 0;
  if (s_index == sizeof(kBgmusicArr) / sizeof(kBgmusicArr[0])) {
    unschedule(schedule_selector(SplashLayer::LoadBgMusic));
    schedule(schedule_selector(SplashLayer::LoadPlist));
  } else {
    // 把音乐资源加载到音乐util
    // 设置进度条百分比
       s_index++;
  }
}
void SplashLayer::LoadPlist(float dt) {
    static int s_index = 0;
    if (s_index == sizeof(kPlistArr) / sizeof(kPlistArr[0])) {
        // 设置进度条百分百

        scheduleOnce(schedule_selector(SplashLayer::StartGoToMainPage), 1.0f);
    } else {
        // 把plist资源加载到音乐spriteframe中
        // 设置进度条百分比
        /*CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(
            plist_arr[index]);*/
        s_index++;
    }
}

void SplashLayer::StartGoToMainPage(float dt) {
    CCDirector::sharedDirector()->pushScene(MainPage::scene());
}





转载于:https://www.cnblogs.com/feizuzu/p/516fa9c4a89191d3cfa899a21b493671.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值