Esempio n. 1
0
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;
}
Esempio n. 4
0
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;
}