Cocos2d-X 学习笔记 11 制作Loading视图

void MyScene::menuChangeCallback(CCObject* pSender)

{

//初始化Loading界面

CCMenu *menu=(CCMenu *)getChildByTag(1); menu->setVisible(false); CCSize size=CCDirector::sharedDirector()->getWinSize(); labelLoading=CCLabelTTF::create("loading...","Arial",20); labelPercent=CCLabelTTF::create("0%",20); labelLoading->setPosition(ccp(size.width/2,size.height/2)); labelPercent->setPosition(ccp(size.width/2,size.height*0.3)); this->addChild(labelLoading); this->addChild(labelPercent); numberofSprites=200; numberofLoadedSprites=0; CCSprite *loadBg=CCSprite::create("sliderTrack.png"); loadBg->setPosition(ccp(size.width/2,size.height*0.2)); this->addChild(loadBg); loadProgress=CCProgressTimer::create(CCSprite::create("sliderProgress.png")); loadProgress->setBarChangeRate(ccp(1,0)); loadProgress->setType(kCCProgressTimerTypeBar); loadProgress->setMidpoint(ccp(0,0)); loadProgress->setPosition(ccp(size.width/2,size.height*0.2)); this->addChild(loadProgress,1); for(int i=0;i<100;i++) { CCTextureCache::sharedTextureCache()->addImageAsync("HelloWorld.png",this,callfuncO_selector(MyScene::loadingCallBack)); CCTextureCache::sharedTextureCache()->addImageAsync("icon.png",callfuncO_selector(MyScene::loadingCallBack)); } } //更新界面 void MyScene::loadingCallBack(CCObject* pSender) { numberofLoadedSprites++; char tmp[10]; float value=((float)numberofLoadedSprites/numberofSprites)*100; sprintf(tmp,"%d%%",(int)(value)); labelPercent->setString(tmp); loadProgress->setPercentage(value); if(numberofLoadedSprites==numberofSprites) { turnToScene(); } } //加载完成后需要做的事 void MyScene::turnToScene() { CCScene *sence=HelloWorld::scene(); CCDirector::sharedDirector()->replaceScene(sence); }

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...