void AdventureLevelClass::loadResAndInit() { CCSize size = LcdAdapClass::sharedLCDADAP()->getWinSize(); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("Themes/scene/stages_bg-hd.plist"); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("Themes/scene/themescene1-hd.plist"); memset(comBuffer, 0, sizeof(comBuffer)); sprintf(comBuffer, "Themes/scene/stages_theme%d-hd.plist",GameStageConClass::sharedStageCon()->getGameStageIndex()); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(comBuffer); bgSprite = CCSprite::createWithSpriteFrameName("ss_bg.png"); CCSize bgSize = bgSprite->getContentSize(); // bgSprite->setPosition(ccp(size.width / 2, size.height / 2)); LcdAdapClass::sharedLCDADAP()->setAdaptorNodePos(bgSprite, ccp(size.width / 2, size.height / 2)); this->addChild(bgSprite,1); CCSprite* bgCN = CCSprite::createWithSpriteFrameName("ss_bg_CN.png"); bgCN->setPosition(ccp(bgSize.width/2, bgSize.height/2)); bgSprite->addChild(bgCN,1); if (GameStageConClass::sharedStageCon()->getGameStageIndex() != GAME_STAGE_TYPE_EXTRE) { memset(comBuffer, 0, sizeof(comBuffer)); sprintf(comBuffer, "ss_towers_%02d.png",(curPageIndex + 1)); levelTowerTypeSP = CCSprite::createWithSpriteFrameName(comBuffer);//default levelTowerTypeSP->setPosition(ccp(bgSize.width/2, bgSize.height * 18/100)); bgSprite->addChild(levelTowerTypeSP,3); levelNumSP = CCSprite::createWithSpriteFrameName("ss_waves_10.png");//default levelNumSP->setPosition(ccp(bgSize.width/2, bgSize.height * 84/100)); bgSprite->addChild(levelNumSP,3); CCSprite* leftCloud = CCSprite::createWithSpriteFrameName("ss_cloud.png"); CCSize cloudSize = leftCloud->getContentSize(); leftCloud->setPosition(ccp(bgSize.width / 2, bgSize.height / 2)); bgSprite->addChild(leftCloud,5); } ccColor4B color; color.a = 125; color.b = 0; color.g = 0; color.r = 0; scrollLayer = CCLayer::create();//default pos is (0,0) scrollLayer->setContentSize(CCSize(size.width * levelNum / 2, size.height)); bgSprite->addChild(scrollLayer,15); for (int i = 0; i < levelNum; i++) { gameLevelInfoStruct levelInfo = HUDClass::sharedHUD()->getGameCurLevelInfo((GAME_STAGE_TYPE)(GameStageConClass::sharedStageCon()->getGameStageIndex()), (i + 1)); memset(comBuffer, 0, sizeof(comBuffer)); sprintf(comBuffer, "ss_map%02d.png",(i + 1)); CCSprite* sprite = CCSprite::createWithSpriteFrameName(comBuffer); CCSize spriteSize = sprite->getContentSize(); //sprite->setPosition(ccp(size.width / 2, size.height / 2)); memset(comBuffer, 0, sizeof(comBuffer)); sprintf(comBuffer, "%s","gainhonor_1.png");//这里要加个判断,判断用户的荣誉 CCSprite* honorSP = NULL; if (levelInfo.UserGained > 0 && levelInfo.UserGained < 4) { sprintf(comBuffer, "gainhonor_%d.png",levelInfo.UserGained); honorSP = CCSprite::createWithSpriteFrameName(comBuffer); honorSP->setVisible(true);//要不要显示 } else { honorSP = CCSprite::createWithSpriteFrameName(comBuffer); honorSP->setVisible(false);//要不要显示 } honorSP->setPosition(ccp(spriteSize.width * 84/100, spriteSize.height * 22/100)); sprite->addChild(honorSP,1); CCSprite* allClearSP = CCSprite::createWithSpriteFrameName("gainhonor_4.png"); if (!levelInfo.isClearAllObject) { allClearSP->setVisible(false); } allClearSP->setPosition(ccp(spriteSize.width * 60/100, spriteSize.height * 22/100)); sprite->addChild(allClearSP,1); levelNormalArray->addObject(sprite);//normal CCLayerColor* layer = CCLayerColor::create(color); layer->setContentSize(spriteSize); ccBlendFunc blend = {GL_DST_ALPHA, GL_SRC_ALPHA}; layer->setBlendFunc(blend); CCRenderTexture* rt = CCRenderTexture::create(spriteSize.width, spriteSize.height); sprite->setPosition(ccp(spriteSize.width/2, spriteSize.height/2)); rt->begin(); sprite->visit(); layer->visit(); rt->end(); CCSprite* levelShade = CCSprite::createWithTexture(rt->getSprite()->getTexture()); levelShade->setFlipY(true); levelShade->setPosition(ccp((bgSize.width/2) * (i + 1), bgSize.height / 2)); levelShadeArray->addObject(levelShade); sprite->setPosition(ccp((bgSize.width/2) * (i + 1), bgSize.height / 2)); sprite->setVisible(false); scrollLayer->addChild(levelShade,1); scrollLayer->addChild(sprite,1); if (i == curPageIndex) {//加个判断,哪一个关卡点亮 curShadeLevelSprite = levelShade; curNormalLevelSprite = sprite; curShadeLevelSprite->setVisible(false); curNormalLevelSprite->setVisible(true); } } gameStartMenu = CCMenuItemImage::create("ss_play_normal_CN.png", "ss_play_pressed_CN.png", this, menu_selector(AdventureLevelClass::selMenuCallBack)); if (GameStageConClass::sharedStageCon()->checkIsCurLevelLocked((curPageIndex + 1))) { gameStartMenu->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("ss_locked_CN.png")); gameStartMenu->setEnabled(false); } gameStartMenu->setTag(MENU_ID_START_TAG); gameStartMenu->setPosition(ccp(bgSize.width/2, bgSize.height * 8/ 100)); CCMenuItemImage* homeBtn = CCMenuItemImage::create("ss_back_normal.png", "ss_back_pressed.png", this, menu_selector(AdventureLevelClass::selMenuCallBack)); homeBtn->setTag(MENU_ID_HOME_TAG); homeBtn->setPosition(ccp(bgSize.width/25, bgSize.height * 95.5 / 100)); CCMenuItemImage* helpBtn = CCMenuItemImage::create("ss_help_normal.png", "ss_help_pressed.png", this, menu_selector(AdventureLevelClass::selMenuCallBack)); helpBtn->setTag(MENU_ID_HELP_TAG); helpBtn->setPosition(ccp(bgSize.width * 24/25, bgSize.height * 95.5 / 100)); CCMenu* menu = CCMenu::create(homeBtn,helpBtn,gameStartMenu,NULL); menu->setPosition(CCPointZero); bgSprite->addChild(menu,2); loadWaitSprite->removeFromParentAndCleanup(true); // this->gotoPageIndexNow(curPageIndex); scrollLayer->setPosition(ccp((bgSize.width/2) * (-curPageIndex), 0)); }