#ifndef __LOADSCENE_H__
#define __LOADSCENE_H__ #include "GameFrameHead.h" class CGameScene; class CLoadScene : public cocos2d::CCLayer
{
public:
enum PmgressbarId
{
_PmgressbarDialog = ,
_PmgressbarPic = ,
};
public:
CLoadScene();
virtual ~CLoadScene(void);
static CCScene* create();
bool init(); public:
//加载资源
void loadRes();
//读进度回调函数
//void loadingCallBack(CCObject *obj);
protected:
void replaceMainlScene(); //场景放到这里创建
//把创建的场景加到场景管理器中
// 内部使用,外部不要调用
void initRes(); private:
CCLayer* m_pProgressLayer;
CCSprite* m_pPicLoadBG; //进度条背景 CCSprite* m_pPicBg; //界面背景图
CCProgressTimer* m_pProTimeBar; //进度条 int m_nNumberOfSprites;
int m_nNumberOfLoadedSprites;
}; #endif //__LOADSCENE_H__
#include "LoadScene.h"
#include "GameScene.h"
#include "XSprite.h"
#include "Config.h"
#include "WidgetMgr.h"
#include "SplashScene.h"
#include "XImage.h"
#include "XWidget.h"
#include "GameMainScene.h"
#include "GameConfig.h"
#include "GameLogic.h"
//#include "SplashLoading.h" #include "GameLevelScene.h" CLoadScene::CLoadScene()
{
m_pPicLoadBG = NULL;
m_pPicBg = NULL;
m_nNumberOfLoadedSprites = ;
m_nNumberOfSprites = ;
m_pProTimeBar = NULL;
} CLoadScene::~CLoadScene(void)
{
CCLOG("CLoadScene::~CLoadScene");
} CCScene* CLoadScene::create()
{ CCScene* pScene = CCScene::create();
CLoadScene* pLoadScene = new CLoadScene();
if (pScene && pLoadScene)
{
pLoadScene->init();
pScene->addChild(pLoadScene,);
pLoadScene->autorelease(); }
return pScene;
} bool CLoadScene::init()
{
//读取配置
CConfig::getInstance()->loadImageInfo();
CConfig::getInstance()->loadElementInfo();
CConfig::getInstance()->loadWidgetInfo();
CConfig::getInstance()->loadAnimationInfo();
CConfig::getInstance()->loadSrollInfo();
CConfig::getInstance()->loadEffectInfo();
CConfig::getInstance()->loadAudioInfo();
CConfig::getInstance()->loadWordInfo();
CConfig::getInstance()->loadActionInfo();
CConfig::getInstance()->loadNumberInfo(); CGameConfig::getInstance()->loadMapInfo();
CGameConfig::getInstance()->loadBiontInfo();
CGameConfig::getInstance()->loadWeaponInfo();
CGameConfig::getInstance()->loadSectInfo(); CGameLogic::getInstance()->readSaveData(); //初始化元素 把plist形式的图片资源加载到内存
vector<PlistInfo>* vecPlist = CConfig::getInstance()->getElementInfoByItem();
if (vecPlist)
{
for (vector<PlistInfo>::iterator it = vecPlist->begin(); it != vecPlist->end(); it++)
{
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(it->strPlist.c_str(), it->strImage.c_str());
}
} vector<PlistInfo>* vecPlist1 = CConfig::getInstance()->getElementInfoByItem();
if (vecPlist1)
{
for (vector<PlistInfo>::iterator it = vecPlist1->begin(); it != vecPlist1->end(); it++)
{
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(it->strPlist.c_str(), it->strImage.c_str());
}
} ////进度条界面
//CXWidget* pPmgressDlg = new CXWidget;
//CWidgetMgr::getInstance()->loadWidget(pPmgressDlg, _PmgressbarDialog);
//pPmgressDlg->autorelease();
//this->addChild(pPmgressDlg);
//
//pPmgressDlg->getCtrl(_PmgressbarPic)->setVisible(false); ////进度条
//m_pProTimeBar = CCProgressTimer::create(((CXImage*)pPmgressDlg->getCtrl(_PmgressbarPic))->getPic());
//if (m_pProTimeBar)
//{
// m_pProTimeBar->setPosition(pPmgressDlg->getCtrl(_PmgressbarPic)->getPosition());
// m_pProTimeBar->setType(kCCProgressTimerTypeBar);
// m_pProTimeBar->setMidpoint(ccp(0,0));
// m_pProTimeBar->setBarChangeRate(ccp(0.5,0));
// m_pProTimeBar->ignoreAnchorPointForPosition(true);
// //m_pProTimeBar->setAnchorPoint(ccp(0,0));
// this->addChild(m_pProTimeBar); // CCSize size = CCDirector::sharedDirector()->getWinSize();
// CCProgressTo* pProgressTo = CCProgressTo::create(2,100);
// m_pProTimeBar->runAction(pProgressTo);
//} this->loadRes();
return true;
} //void CLoadScene::loadingCallBack( CCObject *obj )
//{
// ++m_nNumberOfLoadedSprites;//每调用一次就+1
//
// //全部加载完成后,就执行
// if (m_nNumberOfLoadedSprites == m_nNumberOfSprites)
// {
// //切换场景
// //加载完 延时2秒 切换场景
// CCDelayTime* pActDelay = CCDelayTime::create(2.0f);
// CCFiniteTimeAction* pAction = CCSequence::create(pActDelay,
// CCCallFunc::create(this, callfunc_selector(CLoadScene::replaceMainlScene)),
// NULL);
// m_pProgressLayer->runAction(pAction);
// }
//
//} void CLoadScene::loadRes()
{ //把Plist文件加载到内存 CCDelayTime *delayAction = CCDelayTime::create(0.1f);
CCCallFunc *callSelectorAction = CCCallFunc::create(this,callfunc_selector(CLoadScene::replaceMainlScene));
this->runAction(CCSequence::create(delayAction, callSelectorAction, NULL)); } void CLoadScene::replaceMainlScene()
{ //CSplashLoading* pSplashLoading = CSplashLoading::create(CGameMainScene::create(CGameMainScene::_ResourceId));
//pSplashLoading->retainPrevResource();
CCDirector::sharedDirector()->replaceScene(CSplashScene::create(CGameMainScene::create(CGameMainScene::_ResourceId)));
//CCDirector::sharedDirector()->replaceScene(CSplashScene::create(CGameLevelScene::create(CGameLevelScene::_ResourceId)));
} void CLoadScene::initRes()
{
//这里初始化资源 }

CLoadScene类的更多相关文章

  1. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  2. C++ 可配置的类工厂

    项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...

  3. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  4. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  5. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

  6. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  7. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  8. PHP-解析验证码类--学习笔记

    1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1  定义变量 //随机因子 private $char ...

  9. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

随机推荐

  1. iOS: sqlite数据库的基本操作

    介绍: sqlite3(3是版本)是本地系统中的一个小型数据库,因为它没有在数据维护和安全上做过多的操作,所以它存储处理数据时,非常简单方便,但是它是不安全和不可靠的,如果一旦误操作删除了数据,是没有 ...

  2. poj2142 The Balance 扩展欧几里德的应用 稍微还是有点难度的

    题目意思一开始没理解,原来是 给你重为a,b,的砝码 求测出 重量为d的砝码,a,b砝码可以无限量使用 开始时我列出来三个方程 : a*x+b*y=d; a*x-b*y=d; b*y-ax=d; 傻眼 ...

  3. hadoop源代码组织结构与阅读技巧

    本文将介绍在 Eclipse 下阅读 Hadoop 源代码的一些技巧, 比如如何查看一个基类有哪些派生类. 一个方法被其他哪些方法调用等. 本文地址:http://www.cnblogs.com/ar ...

  4. Qt正则表达式提取数据

    这几天在上嵌入式课程设计,需要用到Qt,这个是信号与槽的,寒假的时候也简单学习了一些,但是没有怎么深入,又回过来看了看Qt,发现Qt的ui界面配置与Android的好像,当然Qt也可以拿来开发Andr ...

  5. pjsip视频通信开发(底层实现)之用户注册(1)

    一.PJSIP简介 对于pjsip的介绍可以看http://www.cnblogs.com/my_life/articles/2175462.html 文章,里面详细介绍了它的组成框架以及各部份的组成 ...

  6. RS报表自动适应屏幕分辨率大小

    问题:同一个报表,由于用户电脑显示器大小,分辨率大小不同显示的不一样,看起来不完整或者很不协调 原因:设计报表大小属性的时候使用了固定值属性,比如限制为宽:1200px 那么在电脑屏幕小分辨率很小的情 ...

  7. 同一个数据库实例,不同用户下多表创建视图,Hibernate完毕ORM映射,Spring整合,后台实现

    1.同一个数据库实例.同用户,多表创建视图 2.同一个数据库实例,不同用户下.多表创建视图 3.同一个数据库,不同数据库实例,多表创建视图 4.不同类型数据库,多表创建视图 1.同一个数据库实例.同用 ...

  8. 【pyhon】Python里的字符串查找函数find和java,js里的indexOf相似,找到返回序号,找不到返回-1

    # 例子: target='www.163.com' ')) ')==-1: print('263不存在于字符串'+target+'中') 运行: C:\Users\horn1\Desktop\pyt ...

  9. installshield12如何改变默认安装目录

    installshield12如何改变默认安装目录 androidstudio添加其他项目中的module androidrecyclerviewonBindViewHolder [RealSense ...

  10. vb 获取打印机名称

    Const HKLM = &H80000002 '定义根键常数 '其他常用根键 Const HKCR = &H80000000 , Const HKCU = &H8000000 ...