Cocos2d-x--实现Loading界面加载资源
来源:互联网 发布:视频制作软件 编辑:程序博客网 时间:2024/05/29 02:14
原理,使用
CCTextureCache::sharedTextureCache()->addImageAsync("background.png", this, callfuncO_selector(Assets::loadingCallBack));
加载纹理时,每加载一张纹理调用一次Assets::loadingCallBack,Assets::loadingCallBack实现进度条的进度跟进和判断跳转
步骤:
1.新建一个Cocos2d-x工程,保证能成功运行(我一直在说废话,呵呵)
2.在HelloWorldScene.h文件中修改和增加代码
3.在HelloWorldScene.cpp文件中修改和增加代码
4.新建SecondScene.h和SecondScene.cpp两个文件,用于加载完成后跳转
1.新建一个Cocos2d-x工程,保证能成功运行,没有其他的了
2.在HelloWorldScene.h文件中修改和增加代码
HelloWorld(); virtual bool init(); static cocos2d::CCScene* scene(); CREATE_FUNC(Assets);void loadingCallBack(cocos2d::CCObject *obj);//回调函数,每加载一张纹理就调用一次private:cocos2d::CCLabelTTF *m_pLabelLoading;//文字标签,用于显示“Loading”字样cocos2d::CCLabelTTF *m_pLabelPercent;//文字标签,用于显示百分比int currentNum;//当前加载到第几张int totalNum;//加载总数
3.在HelloWorldScene.cpp文件中修改和增加代码
构造函数,初始化currentNum和totalNum
HelloWorld::HelloWorld():currentNum(0),totalNum(500){}
修改init()中的do代码块为:
CC_BREAK_IF(! CCLayer::init());//取得屏幕大小CCSize size = CCDirector::sharedDirector()->getWinSize();//文字标签,用于显示Loding字样和加载的进度m_pLabelLoading = CCLabelTTF::create("Loading...", "Arial", 25);m_pLabelPercent = CCLabelTTF::create("0%", "Arial", 25) ;m_pLabelLoading->setPosition(ccp(size.width / 2, size.height / 2 + 50));m_pLabelPercent->setPosition(ccp(size.width / 2, size.height / 2));this->addChild(m_pLabelLoading);this->addChild(m_pLabelPercent);//加载HelloWorld.png纹理for (int i = 0; i < 500; i++){//加载纹理,回调Assets::loadingCallBackCCTextureCache::sharedTextureCache()->addImageAsync("HelloWorld.png", this, callfuncO_selector(Assets::loadingCallBack));} bRet = true;
回调函数loadingCallBack的实现:
void Assets::loadingCallBack(cocos2d::CCObject *obj){//currentNum初始值为0,每加载一张纹理值自加1++currentNum;char tmp[10];//求得百分比sprintf(tmp, "%d%%", (int)(((float)currentNum / totalNum) * 100));//设置标签显示的内容m_pLabelPercent->setString(tmp);//如果当前加载的张数跟总数相等则进行场景跳转if (currentNum == totalNum){this->removeChild(m_pLabelPercent, true);this->removeChild(m_pLabelLoading, true);//场景跳转CCScene *m_SecondScene = SecondScene::scene(); CCDirector::sharedDirector()->replaceScene(CCTransitionJumpZoom::create(1.0f,m_SecondScene));}}
4.新建SecondScene.h和SecondScene.cpp两个文件,用于加载完成后跳转
新建场景的步骤详见http://blog.csdn.net/zlqqhs/article/details/9245125
将SecondScene.cpp文件下的init函数下的代码改为:
//通过名字从CCTextureCache中取得纹理CCTexture2D *texture = CCTextureCache::sharedTextureCache()->textureForKey("HelloWorld.png");//实例化精灵CCSprite *m_sprite = CCSprite::createWithTexture(texture);CC_BREAK_IF(!m_sprite);//设置精灵位置m_sprite->setPosition(ccp(100, 100));//添加精灵到场景this->addChild(m_sprite);bRet = true;
- Cocos2d-x--实现Loading界面加载资源
- cocos2d-x Loading界面实现资源加载
- Cocos2d-x--实现Loading界面加载资源
- cocos2d-x Loading界面实现资源加载
- cocos2d-x v3.2 Loading界面实现资源加载
- Cocos2d-x 3.x 异步加载资源和Loading界面
- Cocos2d-x 实现Loading界面加载资源进度条显示百分比(回调函数)
- cocos2d-x 3.6版loading加载资源
- cocos2d-x 3.0 Loading界面实现
- Cocos2d-x 3.2 游戏资源Loading界面简单Demo
- cocos2d-x游戏开发(十五)游戏加载动画loading界面
- cocos2d-x游戏开发(十五)游戏加载动画loading界面
- cocos2d-x游戏开发(十五)游戏加载动画loading界面
- Cocos2d-x 3.10 资源加载进度条Loading显示百分比
- cocos2d-x - loading加载动画
- [Cocos2d-x] loading加载动画
- 【Cocos2d-html5游戏引擎学习笔记(6)】自定义Cocos2d-html5加载资源Loading界面
- cocos2d-x 3.3 之卡牌设计 NO.6 Loading界面(异步加载图片,plist)
- 内核中的同步与任务调度
- 2.1 链表重复元素(删除)
- IKAnalyzer 独立使用 配置扩展词库
- 二维指针动态分配内存连续问题分析
- PHP实践之路(九)类与对象(2)
- Cocos2d-x--实现Loading界面加载资源
- VS Ctrl+ Shift + 8 显示代码空格TAB符
- 通过AOSP下载android源码
- 正在读取软件包列表... 有错误!
- listView分页加载数据
- sizeof解析C语言
- linux时间与Windows时间不一致的解决(linux系统时间比bios快8小时)
- 计算机几大学报
- 召回率与准确率(Precision and Recall)