bool LoadLayer::setUpdateView(){ bool isRet=false; do { CCSprite* loadbg=CCSprite::create("gmbg/welcomebg.png"); CC_BREAK_IF(!loadbg); loadbg->setPosition(getWinCenter()); this->addChild(loadbg,0); // 设置进度条的背景图片 我们把他放到屏幕下方的1/5处 CCSprite* loadbackimg=CCSprite::create("gmbg/lodingbg.png"); CC_BREAK_IF(!loadbackimg); loadbackimg->setPosition(ccp(getWinSize().width/2+getWinOrigin().x,getWinSize().height/5+getWinOrigin().y)); this->addChild(loadbackimg,1); // 添加进度条 CCSprite* loadimg=CCSprite::create("gmbg/longding.png"); CC_BREAK_IF(!loadimg); CCProgressTimer* pt = CCProgressTimer::create(loadimg); pt->setType(kCCProgressTimerTypeBar);// 设置成横向的 //可以看作是按矩形显示效果的进度条类型 pt->setMidpoint(ccp(0,0)); // 用来设定进度条横向前进的方向从左向右或是从右向左 pt->setBarChangeRate(ccp(1,0)); //重新设置锚点 float tex=getWinSize().width/2+getWinOrigin().x; float tey=getWinSize().height/5+getWinOrigin().y-5; pt->setPosition(ccp(tex,tey)); pt->setPercentage(0); this->addChild(pt,2,1); isRet=true; } while (0); return isRet; }
bool DefenderGameLayer::setUpdateViews(){ bool isRet=false; do { // 设置背景图片 CCTexture2D* ptext2dBg=CCTextureCache::sharedTextureCache()->textureForKey("gmbg/gamebg.png"); CCSprite* pSpribg=CCSprite::createWithTexture(ptext2dBg); CC_BREAK_IF(!pSpribg); pSpribg->setPosition(getWinCenter()); this->addChild(pSpribg,1); //初始化武器系统 //初始化武器系统 CCTexture2D* texture=CCTextureCache::sharedTextureCache()->textureForKey("game/weapon.png"); WeaponSprite* pweapon=WeaponSprite::createWithTexture(texture); pweapon->setAnchorPoint(ccp(0.3,0.5)); pweapon->setPosition(ccp(20,getWinSize().height/2)); this->addChild(pweapon,3,2); pweapon->setHudu(0); pweapon->initIdleBulletSpool(this);// 初始化 子弹系统 pweapon->initIdleMagicSpool(this);// 初始化 魔法矩阵 // 初始化怪物系统 this->monsterSystem=new MonsterSystem(); monsterSystem->setDefenderGameLayer(this); this->monsterSystem->addMonster(1,CheckpointSystems::monsterCount(monsterBatchNow)); this->monsterBatchNow=1; // 4秒钟释放一次怪物 假设一句 总共15波怪物 一共一分钟出完 那么 每次4秒 this->schedule(schedule_selector(DefenderGameLayer::releaseMonster),this->interval); // 初始化主城 MainCityBloodSprite* mainc= MainCityBloodSprite::createWithTexture(CCTextureCache::sharedTextureCache()->textureForKey("game/panelblood.png")); CC_BREAK_IF(!mainc); mainc->setAnchorPoint(ccp(0,0)); mainc->setPosition(CCPointZero); this->addChild(mainc,2,5); // 创建暂停游戏按钮 CCTexture2D* pause_button = CCTextureCache::sharedTextureCache()->textureForKey("gmme/pause_button.png"); CCMenuItemSprite* ppause=CCMenuItemSprite::create(CCSprite::createWithTexture(pause_button),CCSprite::createWithTexture(pause_button),this,menu_selector(DefenderGameLayer::stopGameCallBack)); CC_BREAK_IF(!ppause); ppause->setAnchorPoint(ccp(0,1)); ppause->setPosition(ccp(20,getWinSize().height-20)); CCMenu* pMenu=CCMenu::create(ppause,NULL); CC_BREAK_IF(!pMenu); pMenu->setPosition(CCPointZero); this->addChild(pMenu,2); //添加一个 蜗牛进度条看看 SnailProgressSprite* snailProgressSprite=SnailProgressSprite::createWithPic("game/woniujd.png","game/woniubj.png","game/woniu.png"); CC_BREAK_IF(!snailProgressSprite); snailProgressSprite->setAnchorPoint(ccp(1,0.5)); snailProgressSprite->setPosition(ccp(this->getWinSize().width-60,this->getWinSize().height-40)); snailProgressSprite->setRunTime(this->interval*this->monsterBatch); this->addChild(snailProgressSprite,3,6); snailProgressSprite->runSnailProgress(); // 这个是提示关卡 RatingSprite* rat=RatingSprite::createWidthPic("game/stage_title.png"); CC_BREAK_IF(!rat); rat->setPosition(getWinCenter()); this->addChild(rat,2,7); rat->setLeverNum(CCUserDefault::sharedUserDefault()->getIntegerForKey("lve",1)); rat->runAnimation(); // 初始化游戏的提示部分 GameTipsSprite* gameTipsSprite=GameTipsSprite::create(); CC_BREAK_IF(!gameTipsSprite); gameTipsSprite->setPosition(ccp(145,getWinSize().height-40)); gameTipsSprite->setgoldNum(CCUserDefault::sharedUserDefault()->getIntegerForKey("goldNum",0)); gameTipsSprite->setMonstNum(1); gameTipsSprite->setMonstTotalNum(this->monsterBatch); gameTipsSprite->setStageNum(CCUserDefault::sharedUserDefault()->getIntegerForKey("lve",1)); this->addChild(gameTipsSprite,3,8); //检测游戏是否胜利 this->schedule(schedule_selector(DefenderGameLayer::detectdSuccess)); isRet=true; } while (0); return isRet; }
bool GameSuccessfullyLayer::setUpdateView(){ bool isRet=false; do { char temp[12]; // 添加背景图片 CCSprite* laybg=CCSprite::createWithTexture(CCTextureCache::sharedTextureCache()->textureForKey("gmbg/stats_bg.png")); CC_BREAK_IF(!laybg); laybg->setPosition(getWinCenter()); this->addChild(laybg); // 添加当前关卡 CCLabelAtlas* stage= CCLabelAtlas::create("0","game/numtips.png",25,31,'0'); CC_BREAK_IF(!stage); int lve=CCUserDefault::sharedUserDefault()->getIntegerForKey("lve",1); sprintf(temp,"%d",lve); stage->setString(temp); stage->setAnchorPoint(ccp(0,0)); stage->setPosition(ccp(415,370)); this->addChild(stage,1); CCUserDefault::sharedUserDefault()->setIntegerForKey("lve",lve+1); // 添加击杀怪物数目 CCLabelAtlas* killcount= CCLabelAtlas::create("0","game/numtips.png",25,31,'0'); CC_BREAK_IF(!killcount); int killtemp=CCUserDefault::sharedUserDefault()->getIntegerForKey("killtemp",0); sprintf(temp,"%d",killtemp); killcount->setString(temp); killcount->setAnchorPoint(ccp(0,0)); killcount->setPosition(ccp(415,320)); this->addChild(killcount,1); CCUserDefault::sharedUserDefault()->setIntegerForKey("killtemp",0); // 显示剩余生命值 CCLabelAtlas* lifecount= CCLabelAtlas::create("0","game/numtips.png",25,31,'0'); CC_BREAK_IF(!lifecount); int lifetemp=CCUserDefault::sharedUserDefault()->getIntegerForKey("lifetemp",0); sprintf(temp,"%d",lifetemp); lifecount->setString(temp); lifecount->setAnchorPoint(ccp(0,0)); lifecount->setPosition(ccp(415,280)); this->addChild(lifecount,1); CCUserDefault::sharedUserDefault()->setIntegerForKey("lifetemp",0); // 显示击杀奖励 规定杀死一个怪经历1个金币 CCLabelAtlas* killbound= CCLabelAtlas::create("0","game/numtips.png",25,31,'0'); CC_BREAK_IF(!killbound); sprintf(temp,"%d",killtemp); killbound->setString(temp); killbound->setAnchorPoint(ccp(0,0)); killbound->setPosition(ccp(440,218)); this->addChild(killbound,1); // 显示生命值奖励 一点生命值奖励一个金币 CCLabelAtlas* lifebound= CCLabelAtlas::create("0","game/numtips.png",25,31,'0'); CC_BREAK_IF(!lifebound); sprintf(temp,"%d",lifetemp); lifebound->setString(temp); lifebound->setAnchorPoint(ccp(0,0)); lifebound->setPosition(ccp(440,170)); this->addChild(lifebound,1); // 显示关卡奖励 一个过一关奖励5个金币 CCLabelAtlas* goldbound= CCLabelAtlas::create("0","game/numtips.png",25,31,'0'); CC_BREAK_IF(!goldbound); sprintf(temp,"%d",lve*5); goldbound->setString(temp); goldbound->setAnchorPoint(ccp(0,0)); goldbound->setPosition(ccp(440,132)); this->addChild(goldbound,1); // 显示显示总奖励金币 CCLabelAtlas* total= CCLabelAtlas::create("0","game/numtips.png",25,31,'0'); CC_BREAK_IF(!total); int totalnum=lve*5+lifetemp+killtemp; sprintf(temp,"%d",totalnum); total->setString(temp); total->setAnchorPoint(ccp(0,0)); total->setPosition(ccp(415,80)); this->addChild(total,1); // 加上总金币 int goldnum=CCUserDefault::sharedUserDefault()->getIntegerForKey("goldNum",0); CCUserDefault::sharedUserDefault()->setIntegerForKey("goldNum",totalnum+goldnum); // 创建当前提示信息 CCSprite* tip=CCSprite::createWithTexture(CCTextureCache::sharedTextureCache()->textureForKey("game/statstip.png")); CC_BREAK_IF(!tip); tip->setPosition(ccp(this->getContentSize().width/2,30)); this->addChild(tip,1); tip->runAction(CCRepeatForever::create(CCBlink::create(1,1))); isRet=true; } while (0); return isRet; }
bool WelComeGameLayer::setUpdateView(){ bool isRet=false; do { // 从缓存中 取出 背景图片 CCTexture2D* texturebg= CCTextureCache::sharedTextureCache()->textureForKey("gmbg/welcomebg.png"); CCSprite* pSpriteBg=CCSprite::createWithTexture(texturebg); CC_BREAK_IF(!pSpriteBg); pSpriteBg->setPosition(getWinCenter()); this->addChild(pSpriteBg,1); // 添加声音菜单按钮 CCTexture2D* textureon = CCTextureCache::sharedTextureCache()->textureForKey("gmme/button_sound_on.png"); CCTexture2D* textureoff = CCTextureCache::sharedTextureCache()->textureForKey("gmme/button_sound_off.png"); CCMenuItemSprite* pitemVon=CCMenuItemSprite::create(CCSprite::createWithTexture(textureon),CCSprite::createWithTexture(textureon)); CC_BREAK_IF(!pitemVon); CCMenuItemSprite* pitemVoff=CCMenuItemSprite::create(CCSprite::createWithTexture(textureoff),CCSprite::createWithTexture(textureoff)); CC_BREAK_IF(!pitemVoff); CCMenuItemToggle* pVedioTo=NULL; // 当现在 音乐是 播放的时候界面上显示的按钮应该是 暂停音乐按钮 反之 则显示播放按钮 if(CCUserDefault::sharedUserDefault()->getBoolForKey("isplay",false)){ pVedioTo=CCMenuItemToggle::createWithTarget(this,menu_selector(WelComeGameLayer::vedioOnAndOffCallBack),pitemVoff,pitemVon,NULL); }else { pVedioTo=CCMenuItemToggle::createWithTarget(this,menu_selector(WelComeGameLayer::vedioOnAndOffCallBack),pitemVon,pitemVoff,NULL); } CC_BREAK_IF(!pVedioTo); // 注意 里面的 0.15 和0.55 都是 通过PS 定位 看看这个图片放在那里计算出来的 pVedioTo->setPosition(converSpritRel(getWinSize().width*0.15f,getWinSize().height*0.55f)); // 创建开始菜单 CCTexture2D* texturestar_up = CCTextureCache::sharedTextureCache()->textureForKey("gmme/star_up.png"); CCTexture2D* texturestar_down = CCTextureCache::sharedTextureCache()->textureForKey("gmme/star_down.png"); CCMenuItemSprite* pStar=CCMenuItemSprite::create(CCSprite::createWithTexture(texturestar_up),CCSprite::createWithTexture(texturestar_down),this,menu_selector(WelComeGameLayer::menuStarGame)); CC_BREAK_IF(!pStar); pStar->setPosition(ccp(getWinSize().width*0.83f,getWinSize().height*0.75f)); // 创建升级系统菜单 CCTexture2D* textureup_up = CCTextureCache::sharedTextureCache()->textureForKey("gmme/upup.png"); CCTexture2D* textureup_down = CCTextureCache::sharedTextureCache()->textureForKey("gmme/updwon.png"); CCMenuItemSprite* pup=CCMenuItemSprite::create(CCSprite::createWithTexture(textureup_up),CCSprite::createWithTexture(textureup_down),this,menu_selector(WelComeGameLayer::menuUpGameCallback)); CC_BREAK_IF(!pup); pup->setPosition(ccp(660,275)); // 创建退出游戏菜单 CCTexture2D* textureout_up = CCTextureCache::sharedTextureCache()->textureForKey("gmme/outup.png"); CCTexture2D* textureout_down = CCTextureCache::sharedTextureCache()->textureForKey("gmme/outdown.png"); CCMenuItemSprite* pout=CCMenuItemSprite::create(CCSprite::createWithTexture(textureout_up),CCSprite::createWithTexture(textureout_down),this,menu_selector(WelComeGameLayer::menuGameOverCallback)); CC_BREAK_IF(!pout); pout->setPosition(ccp(640,190)); // 创建开发者 菜单按钮 CCTexture2D* texturecoder_up = CCTextureCache::sharedTextureCache()->textureForKey("gmme/coder_up.png"); CCTexture2D* texturecoder_down = CCTextureCache::sharedTextureCache()->textureForKey("gmme/coder_down.png"); CCMenuItemSprite* pcoder=CCMenuItemSprite::create(CCSprite::createWithTexture(texturecoder_up),CCSprite::createWithTexture(texturecoder_down),this,menu_selector(WelComeGameLayer::menuCoderCallback)); CC_BREAK_IF(!pcoder); pcoder->setPosition(converSpritRel(getWinSize().width*0.78f,getWinSize().height*0.21f)); CCMenu* pMenu=CCMenu::create(pVedioTo,pStar,pup,pout,pcoder,NULL); CC_BREAK_IF(!pMenu); pMenu->setPosition(CCPointZero); this->addChild(pMenu,2); isRet=true; } while (0); return isRet; }