zoukankan      html  css  js  c++  java
  • 【COCOS2D-HTML5 开发之三】演示样例项目附源代码及执行的GIF效果图

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:(作者新浪微博: @李华明Himi 
    转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/cocos2d-html5/1528.html
     

              ☞ 点击订阅 ☜
     本博客最新动态!及时将最新博文通知您!


                     

    Cocos2dx html5开发,对于用过2d Or -x的童鞋来说非常easy,Himi这里也没有必要去再跟同学们具体的教学一遍。

    所以Himi简单做了一个项目,供给大家參考,源代码下载地址及GIF截图在文章最后!

              强调一点:执行 cocos2dx-html5项目,大家能够本地安装webserver, apache 等,将项目公布在webserver上就可以。或者直接使用火狐浏览器进行调试,火狐浏览器是没有限制的。

     

    演示样例项目执行截图:

    QQ20140220-1

     

    源代码下载地址(含执行后的GIF图):   http://vdisk.weibo.com/s/yZxRoLm4SHuv0

    最后直接贴上源代码,方便懒得去下载的童鞋们直接CV~ 

    var CircleSprite = cc.Sprite.extend({
        _degree:0,
        ctor:function () {
            this._super();
        },
        draw:function () {
            cc.drawingUtil.setDrawColor4B(0,0,0,255);
    
            if (this._degree < 0)
                this._degree = 360;
    		cc.drawingUtil.setLineWidth(2);
            cc.drawingUtil.drawCircle(cc.PointZero(), 30, cc.DEGREES_TO_RADIANS(this._degree), 60, true);
        },
        myUpdate:function (dt) {
            this._degree -= 6;
        }
    });
    
    var HpRectSprite = cc.Sprite.extend({
    	_rectWidth:0,
    	_rectHeigth:0,
    	_x:0,
    	_y:0,
    	_hp:0,
    	_maxHp:0,
    	
        ctor:function () {
            this._super();
        },
        draw:function () {
    	    cc.drawingUtil.setDrawColor4B(0,0,0,255);
    	    cc.drawingUtil.setLineWidth(2); 
    	    var vertices = [cc.p(this._x, this._y), 
    		cc.p(this._x+this._rectWidth, this._y), 
    		cc.p(this._x+this._rectWidth, this._y-this._rectHeigth), 
    		cc.p(this._x, this._y-this._rectHeigth)];
    	    cc.drawingUtil.drawPoly(vertices, 4, true);
    		
    		
    	    cc.drawingUtil.setDrawColor4B(255,0,0,255);
    	    cc.drawingUtil.setLineWidth(7); 
    		var rate = this._hp/this._maxHp;
    	    cc.drawingUtil.drawLine(cc.p(this._x+1, this._y-4), cc.p(this._x+this._rectWidth*rate,this._y-4));
        },
    });
    
    
    
    var gameLayer = cc.Layer.extend({ 
    	//game state
    	gameState:0,//0:map   , 1:home(母港)  , 2.
    	
    	
    	
    	
    	
    	//pointer count
    	pointer_count:10,
        //pointers (left to right , up to  down)
    	pointArray:[[],[],[],[],[],[],[],[],[],[]],
    	//pointer tower name collitision
    	pointStrCollisitionArray:[[],[],[],[],[],[],[],[],[],[]],
    	//pointer tower name
    	pointStrArray:[],
    	//tower property
    	towerProperArray:[[],[],[],[],[],[],[],[],[],[]],
    	//pet property
    	petProperArray:[],
    	
    	//random count
    	randomCount:0,
    	 
    	//tower time
    	towerTime:[],
    	
    	enumTag:{
    		tag_pointer:0,
    		tag_map:100,
    		tag_shop:101,
    		tag_home:102,
    		tag_bgJumpContent:103,
    		tag_bgCloseX:104,
    		tag_towerProperPeople:105,
    		tag_towerProperDef:106,
    		tag_towerProperAttCount:107,
    		tag_towerProperPeopleC:108,
    		tag_towerProperDefC:109,
    		tag_towerProperAttCountC:110,
    		tag_towerProperLine:111,
    		tag_contentAllPetHpName:112,
    		tag_contentIntoTower:113,
    		tag_contentAdd:130,
    	},
    	//select tower index
    	selectTowerIndex:-1,
    	//select tower isSHow
    	selectContentIsShow:false,
    	
    	
        init:function () {
            var selfPointer = this;
            this._super();
    		
    		this.schedule(this.logicUpdate, 1 / 60);
    		var size = cc.Director.getInstance().getWinSize();
    		
    		this.pointArray=
    		[[size.width*0.1,size.height*0.6],[size.width*0.23,size.height*0.6],[size.width*0.33,size.height*0.25],
    		[size.width*0.46,size.height*0.64],[size.width*0.5,size.height*0.58],[size.width*0.53,size.height*0.45],
    		[size.width*0.7,size.height*0.6],[size.width*0.8,size.height*0.42],[size.width*0.897,size.height*0.5],
    		[size.width*0.915,size.height*0.175]];
    		
    		this.pointStrArray=["翡冷翠","牛曰","里曰热内裤","狼蛋","篱笆","开锣","摸死客","向肛","洞精","稀泥"];
    		this.towerProperArray=[[1000000,1000000,1000],[5000000,5000000,5000],[20000000,20000000,20000],[5000000,5000000,5000],[5000000,5000000,5000],[20000000,20000000,20000],[1000000,1000000,1000],[100000000,100000000,100000],[1000000,1000000,1000],[20000000,20000000,20000]];
    		this.towerTime=["01:10:60","01:10:60","01:10:60","01:10:60","01:10:60","01:10:60","01:10:60","01:10:60","01:10:60","01:10:60"];
    
    		//name,hp,maxhp
    		this.petProperArray=[["皮卡丘",10,100],["小皮卡",30,100],["宠物猫咪",50,100],["清晨大怪兽",70,100],["哇哈哈怪兽",90,100],["pet name",100,100]];
    		
            //map bg
            sprite = cc.Sprite.create(r_worldBG);
            sprite.setPosition(cc.p(sprite.getContentSize().width*0.5, size.height- sprite.getContentSize().height*0.5));
            sprite.setScale(0.5);
            sprite.setRotation(180);
            this.addChild(sprite,0,this.enumTag.tag_map);
            var rotateToA = cc.RotateTo.create(0.1, 0);
            var scaleToA = cc.ScaleTo.create(0.1, 1, 1);
            sprite.runAction(cc.Sequence.create(rotateToA, scaleToA));
                
            //circle 
            var circle = new CircleSprite();
            circle.setPosition(cc.p(40, size.height - 60));
            this.addChild(circle);
            circle.schedule(circle.myUpdate, 1 / 60);
    		
    		for (var i=0;i<this.pointer_count;i++){ 
    			var towerPoint = cc.Sprite.create(r_towerPoint);
    			towerPoint.setPosition(cc.p(this.pointArray[i][0],this.pointArray[i][1]+size.height));
    			this.addChild(towerPoint,0,this.enumTag.tag_pointer+i);
                var dyTime = Math.random();
                if(dyTime<0.2){
                    dyTime=0.2;
                }
                var actDown = cc.Sequence.create(  
                cc.DelayTime.create(dyTime),
                cc.MoveTo.create(0.2,cc.p(this.pointArray[i][0],this.pointArray[i][1]+size.height)), 
                cc.MoveTo.create(0.2,cc.p(this.pointArray[i][0],this.pointArray[i][1])),
                cc.MoveTo.create(0.15,cc.p(this.pointArray[i][0],this.pointArray[i][1]+10)),
                cc.MoveTo.create(0.15,cc.p(this.pointArray[i][0],this.pointArray[i][1])));
                towerPoint.runAction(actDown);
    			
    			//地名文字
    			var fontNode =this.createFontWithBg(this.pointStrArray[i],23,this.pointArray[i][0],this.pointArray[i][1]+33,true,dyTime+0.5,i);
                this.addChild(fontNode,0,this.pointer_count+i);
    		}
    
    		//shop
            var shopBtn= cc.Sprite.create(r_shopBtn);
            shopBtn.setPosition(cc.p(size.width - shopBtn.getContentSize().width*0.5, size.height - shopBtn.getContentSize().height*0.5));
    		this.addChild(shopBtn,0,this.enumTag.tag_shop)
    		
    		//home
            var homeBtn= cc.Sprite.create(r_homeBtn);
            homeBtn.setPosition(cc.p(homeBtn.getContentSize().width, homeBtn.getContentSize().height));
    		this.addChild(homeBtn,0,this.enumTag.tag_home)
    		
    		
    		//map content  
    		var mapContent=this.createContentWithBg(0,0,300,500,true,0,-80);
    		this.addChild(mapContent,0,this.enumTag.tag_bgJumpContent);
    		mapContent.setVisible(false);
    		
    		//closeX
    		var closeX  = cc.Sprite.create(r_closeX);
    		this.addChild(closeX,0,this.enumTag.tag_bgCloseX);
    		closeX.setVisible(false);
    		
    		//tower proper
    		var towerProperPeople = cc.LabelTTF.create("人口:", "Arial-bold", 17);
    		var towerProperDef = cc.LabelTTF.create("城防:", "Arial-bold", 17);
    		var towerProperAttCount = cc.LabelTTF.create("机甲:", "Arial-bold",17);
    		this.addChild(towerProperPeople,0,this.enumTag.tag_towerProperPeople);
    		this.addChild(towerProperDef,0,this.enumTag.tag_towerProperDef);
    		this.addChild(towerProperAttCount,0,this.enumTag.tag_towerProperAttCount);
    		towerProperPeople.setVisible(false);
    		towerProperDef.setVisible(false);
    		towerProperAttCount.setVisible(false);
    		towerProperPeople.setColor(cc.c3b(0,0,0));
    		towerProperDef.setColor(cc.c3b(0,0,0));
    		towerProperAttCount.setColor(cc.c3b(0,0,0));
    		
    		var towerProperPeopleC = cc.LabelTTF.create("", "Arial-bold", 17);
    		var towerProperDefC = cc.LabelTTF.create("", "Arial-bold", 17);
    		var towerProperAttCountC = cc.LabelTTF.create("", "Arial-bold", 17);
    		this.addChild(towerProperPeopleC,0,this.enumTag.tag_towerProperPeopleC);
    		this.addChild(towerProperDefC,0,this.enumTag.tag_towerProperDefC);
    		this.addChild(towerProperAttCountC,0,this.enumTag.tag_towerProperAttCountC);
    		towerProperPeopleC.setVisible(false);
    		towerProperDefC.setVisible(false);
    		towerProperAttCountC.setVisible(false);
    		towerProperPeopleC.setColor(cc.c3b(0,0,0));
    		towerProperDefC.setColor(cc.c3b(0,0,0));
    		towerProperAttCountC.setColor(cc.c3b(0,0,0));
    		
        },
        
        logicUpdate:function (dt) {
    		
    		if(this.gameState == 0){
    			this.randomCount++;
    			if(this.randomCount%180==0){
    				var resCount= parseInt(Math.random()*5);
    				for(var i = 0;i<resCount;i++){
    					var pointerIndex = parseInt(Math.random()*10);
    					var everyPointer =this.getChildByTag(pointerIndex); 
    					everyPointer.stopAllActions();
    			        var randomDown = cc.Sequence.create(
    			        cc.MoveTo.create(0.2,cc.p(everyPointer.getPositionX(),everyPointer.getPositionY()+10)), 
    			        cc.MoveTo.create(0.2,cc.p(everyPointer.getPositionX(),everyPointer.getPositionY())),
    			        cc.MoveTo.create(0.15,cc.p(everyPointer.getPositionX(),everyPointer.getPositionY()+5)),
    			        cc.MoveTo.create(0.15,cc.p(everyPointer.getPositionX(),everyPointer.getPositionY())),
    					cc.MoveTo.create(0.15,cc.p(everyPointer.getPositionX(),everyPointer.getPositionY()+2)),
    					cc.MoveTo.create(0.15,cc.p(everyPointer.getPositionX(),everyPointer.getPositionY())));
    			        everyPointer.runAction(randomDown);
    				
    				}
    				this.randomCount=0;
    			} 
    		}else{
    		}
    		
        },
    	
        onTouchBegan:function (touch, event) {  
    		//point check
    		var point =touch.getLocation();
    		
    		if(this.gameState == 0){
    			for (var i=0;i<this.pointer_count;i++){ 
    				var everyPointer =this.getChildByTag(this.enumTag.tag_pointer+i); 
    				var _rect = cc.rect(this.pointStrCollisitionArray[i][0],this.pointStrCollisitionArray[i][1],
    					this.pointStrCollisitionArray[i][2], this.pointStrCollisitionArray[i][3]); 
    				
    				if(cc.rectContainsPoint(everyPointer.getBoundingBox(),point) || cc.rectContainsPoint(_rect,point) ){ 
    					everyPointer.setTexture(cc.TextureCache.getInstance().addImage(r_towerPointPress));
    				}
    			}
    			//shop & home check 
    			var shopSpr =this.getChildByTag(this.enumTag.tag_shop);
    			if(cc.rectContainsPoint(shopSpr.getBoundingBox(),point)){ 
    				shopSpr.setTexture(cc.TextureCache.getInstance().addImage(r_shopBtnPress));
    			}
    			var homeSpr =this.getChildByTag(this.enumTag.tag_home);
    			if(cc.rectContainsPoint(homeSpr.getBoundingBox(),point)){ 
    				homeSpr.setTexture(cc.TextureCache.getInstance().addImage(r_homeBtnPress));
    			}
    			var closeXSpr =this.getChildByTag(this.enumTag.tag_bgCloseX);
    			if(cc.rectContainsPoint(closeXSpr.getBoundingBox(),point)){ 
    				closeXSpr.setTexture(cc.TextureCache.getInstance().addImage(r_closeXPress));
    			}
    		
    		
    			var towerProperContent =this.getChildByTag(this.enumTag.tag_contentAllPetHpName);
    			if(this.selectContentIsShow){
    				var towerAdd =towerProperContent.getChildByTag(this.enumTag.tag_contentAdd);
    				if(cc.rectContainsPoint(towerAdd.getBoundingBox(),point)){ 
    					towerAdd.setTexture(cc.TextureCache.getInstance().addImage(r_addPress));
    				}
    				for (var i=0;i<this.petProperArray.length;i++){ 
    					var into_tower =towerProperContent.getChildByTag(this.enumTag.tag_contentIntoTower+i);
    					if(cc.rectContainsPoint(into_tower.getBoundingBox(),point)){ 
    						into_tower.setTexture(cc.TextureCache.getInstance().addImage(r_intoTowerPress));
    					}
    				}
    				}
    		}else{
    		
    		
    		
    		
    		}
    		
    		return true;
        },
    	
        onTouchEnded:function (touch, event) {
    		var point =touch.getLocation();
    		
    		if(this.gameState == 0){
    			
    			//---------- back old img ----------
    			for (var i=0;i<this.pointer_count;i++){ 
    				var everyPointer =this.getChildByTag(this.enumTag.tag_pointer+i);
    				everyPointer.setTexture(cc.TextureCache.getInstance().addImage(r_towerPoint));
    			} 
    			var shopSpr =this.getChildByTag(this.enumTag.tag_shop);
    			var homeSpr =this.getChildByTag(this.enumTag.tag_home);
    			var closeXSpr =this.getChildByTag(this.enumTag.tag_bgCloseX);
    		
    			shopSpr.setTexture(cc.TextureCache.getInstance().addImage(r_shopBtn));
    			homeSpr.setTexture(cc.TextureCache.getInstance().addImage(r_homeBtn));
    			closeXSpr.setTexture(cc.TextureCache.getInstance().addImage(r_closeX));
    		
    		
    			var towerProperContent =this.getChildByTag(this.enumTag.tag_contentAllPetHpName);
    			if(this.selectContentIsShow){
    				var towerAdd =towerProperContent.getChildByTag(this.enumTag.tag_contentAdd);
    				towerAdd.setTexture(cc.TextureCache.getInstance().addImage(r_add));
    			
    				for (var i=0;i<this.petProperArray.length;i++){ 
    					var into_tower =towerProperContent.getChildByTag(this.enumTag.tag_contentIntoTower+i);
    					into_tower.setTexture(cc.TextureCache.getInstance().addImage(r_intoTower));
    				}
    			}
    		
    			//shop & home check  & content X
    			if(cc.rectContainsPoint(shopSpr.getBoundingBox(),point)){ 
    			
    			}
    			if(cc.rectContainsPoint(homeSpr.getBoundingBox(),point)){ 
    		        var director = cc.Director.getInstance();
    				var skillScene =skillScene.createSkillLayer();
    				director.replaceScene(skillScene);
    			}
    		
    			if(cc.rectContainsPoint(closeXSpr.getBoundingBox(),point)){ 
    				this.hideOrShowContent(false,-1,point);
    				return;
    			}
    		
    			if(this.selectContentIsShow){
    				var towerAdd =towerProperContent.getChildByTag(this.enumTag.tag_contentAdd);
    				if(cc.rectContainsPoint(towerAdd.getBoundingBox(),point)){ 
    					alert("Himi-Tower Name");
    				}
    			
    				var selectIntoIndex=-1;
    				for (var i=0;i<this.petProperArray.length;i++){ 
    					var into_tower =towerProperContent.getChildByTag(this.enumTag.tag_contentIntoTower+i);
    					if(cc.rectContainsPoint(into_tower.getBoundingBox(),point)){  
    						selectIntoIndex =i;
    					}
    				}
    				if(selectIntoIndex!=-1){
    					alert("Himi:"+selectIntoIndex);
    				}
    			}
    		
    		
    		
    			//---------- point & tower check ----------
    		
    			if(!this.selectContentIsShow){
    				//is touch tower
    				this.selectTowerIndex=-1;
    				for (var i=0;i<this.pointer_count;i++){ 
    					var everyPointer =this.getChildByTag(this.enumTag.tag_pointer+i); 
    					var _rect = cc.rect(this.pointStrCollisitionArray[i][0],this.pointStrCollisitionArray[i][1],
    						this.pointStrCollisitionArray[i][2], this.pointStrCollisitionArray[i][3]); 
    				
    					if(cc.rectContainsPoint(everyPointer.getBoundingBox(),point) || cc.rectContainsPoint(_rect,point) ){ 
    						everyPointer.setTexture(cc.TextureCache.getInstance().addImage(r_towerPointPress));
    						this.selectTowerIndex= this.enumTag.tag_pointer+i;
    					}
    				}
    				if(this.selectTowerIndex!=-1){
    					this.hideOrShowContent(true,this.selectTowerIndex,point);
    				}
    			}else{
    				var contentPosi = this.getChildByTag(this.enumTag.tag_bgJumpContent).getPosition();
    				if(!(point.x>=contentPosi.x && point.x<=contentPosi.x+255
    					 && point.y<=contentPosi.y+5 && point.y>=contentPosi.y-465)){
    					this.hideOrShowContent(false,this.selectTowerIndex,point);
    					//is touch tower
    					this.selectTowerIndex=-1;
    					for (var i=0;i<this.pointer_count;i++){ 
    						var everyPointer =this.getChildByTag(this.enumTag.tag_pointer+i); 
    						var _rect = cc.rect(this.pointStrCollisitionArray[i][0],this.pointStrCollisitionArray[i][1],
    							this.pointStrCollisitionArray[i][2], this.pointStrCollisitionArray[i][3]); 
    
    						if(cc.rectContainsPoint(everyPointer.getBoundingBox(),point) || cc.rectContainsPoint(_rect,point) ){ 
    							everyPointer.setTexture(cc.TextureCache.getInstance().addImage(r_towerPointPress));
    							this.selectTowerIndex= this.enumTag.tag_pointer+i;
    						}
    					}
    					if(this.selectTowerIndex!=-1){
    						this.hideOrShowContent(true,this.selectTowerIndex,point);
    					}
    				}
    			}
    		}else{
    		
    		
    		
    		
    		
    		}
    		
        },
        onTouchMoved:function (touch, event) {
        },
        onTouchCancelled:function (touch, event) {  
        },
    	
    	hideOrShowContent:function(_isShow,selectTowerIndex,point){
    		if(_isShow){
    			this.selectContentIsShow=true;
    			
    			var towerX = this.pointArray[this.selectTowerIndex][0];
    			var towerY = this.pointArray[this.selectTowerIndex][1];
    			
    			var mapContent=this.getChildByTag(this.enumTag.tag_bgJumpContent);
    			mapContent.setVisible(true);
    			var mx=0;
    			var my=0;
    			if(point.y<=500 &&point.y>400 ){
    				my=100;
    			}else if(point.y<=400 &&point.y>300 ){
    				my=240;
    			}else if(point.y<=300 && point.y>200){
    				my=340;
    			}else if(point.y<=200 && point.y>100){
    				my=440;
    			}else if(point.y<=100){
    				my=500;
    			}else{
    				mapContent.setPosition(cc.p(towerX,towerY));
    			}
    			var sWidth =cc.Director.getInstance().getWinSize().width;
    			if(sWidth-point.x<=300 &&sWidth-point.x>200 ){
    				mx=-100;
    			}else if(sWidth-point.x<=200 &&sWidth-point.x>100 ){
    				mx=-200;
    			}else if(sWidth-point.x<=100){
    				mx=-300;
    			}else{
    				mapContent.setPosition(cc.p(towerX,towerY));
    			}
    			towerX+=mx;
    			towerY+=my;
    			mapContent.setPosition(cc.p(towerX,towerY));
    			
    			var CloseX =this.getChildByTag(this.enumTag.tag_bgCloseX);
    			CloseX.setVisible(true);
    			CloseX.setPosition(cc.p(towerX+220,towerY-CloseX.getContentSize().height*0.5));
    			
    			
    			var properPeople = this.getChildByTag(this.enumTag.tag_towerProperPeople);
    			var properDef = this.getChildByTag(this.enumTag.tag_towerProperDef);
    			var properAttCount = this.getChildByTag(this.enumTag.tag_towerProperAttCount);
    			properPeople.setVisible(true);
    			properDef.setVisible(true);
    			properAttCount.setVisible(true);
    			properPeople.setPosition(cc.p(towerX+30,towerY-CloseX.getContentSize().height*0.5+20));
    			properDef.setPosition(cc.p(towerX+30,towerY-CloseX.getContentSize().height*0.5));
    			properAttCount.setPosition(cc.p(towerX+30,towerY-CloseX.getContentSize().height*0.5-20));
    			
    			
    			var properPeopleC = this.getChildByTag(this.enumTag.tag_towerProperPeopleC);
    			var properDefC = this.getChildByTag(this.enumTag.tag_towerProperDefC);
    			var properAttCountC = this.getChildByTag(this.enumTag.tag_towerProperAttCountC);
    			properPeopleC.setVisible(true);
    			properDefC.setVisible(true);
    			properAttCountC.setVisible(true);
    			properPeopleC.setString(this.getCurrentTowerProperbyIndex(this.selectTowerIndex,0));
    			properDefC.setString(this.getCurrentTowerProperbyIndex(this.selectTowerIndex,0));
    			properAttCountC.setString(this.getCurrentTowerProperbyIndex(this.selectTowerIndex,0));
    			properPeopleC.setPosition(cc.p(towerX+100,towerY-CloseX.getContentSize().height*0.5+20));
    			properDefC.setPosition(cc.p(towerX+100,towerY-CloseX.getContentSize().height*0.5));
    			properAttCountC.setPosition(cc.p(towerX+100,towerY-CloseX.getContentSize().height*0.5-20));
    			
    			
    			//into  this.petProperArray.length
    			
    			var allPetNameAndHp = this.getCurrentContentAllPetNameAndHpBg(properAttCountC.getPositionX()-25,properAttCountC.getPositionY()-50);
    			this.addChild(allPetNameAndHp,0,this.enumTag.tag_contentAllPetHpName);
    		}else{
    			this.selectContentIsShow=false;
    			var mapContent=this.getChildByTag(this.enumTag.tag_bgJumpContent);
    			mapContent.setVisible(false);
    			var closeX=this.getChildByTag(this.enumTag.tag_bgCloseX);
    			closeX.setVisible(false);
    			closeX.setPosition(cc.p(-300,-300));
    			var properPeople = this.getChildByTag(this.enumTag.tag_towerProperPeople);
    			var properDef = this.getChildByTag(this.enumTag.tag_towerProperDef);
    			var properAttCount = this.getChildByTag(this.enumTag.tag_towerProperAttCount);
    			properPeople.setVisible(false);
    			properDef.setVisible(false);
    			properAttCount.setVisible(false);
    			var properPeopleC = this.getChildByTag(this.enumTag.tag_towerProperPeopleC);
    			var properDefC = this.getChildByTag(this.enumTag.tag_towerProperDefC);
    			var properAttCountC = this.getChildByTag(this.enumTag.tag_towerProperAttCountC);
    			properPeopleC.setVisible(false);
    			properDefC.setVisible(false);
    			properAttCountC.setVisible(false);
    			if(this.getChildByTag(this.enumTag.tag_contentAllPetHpName)!=null){
    				this.removeChildByTag(this.enumTag.tag_contentAllPetHpName);
    			}
    			selectTowerIndex=-1;
    		}
    	},
    	
    	
    	getCurrentContentAllPetNameAndHpBg:function(_x,_y){
    		if(this.getChildByTag(this.enumTag.tag_contentAllPetHpName)!=null){
    			this.removeChildByTag(this.enumTag.tag_contentAllPetHpName);
    		}
    		
    		var petAllHpName = cc.Node.create();
    		
    		var contentHurry = this.createFontWithBg("XXOOZX",23,_x+10,_y,false);
    		petAllHpName.addChild(contentHurry);
    		
    		var contentTowerTime = this.createFontWithBg(this.towerTime[this.selectTowerIndex],23,_x+10,_y-32,false);
    		petAllHpName.addChild(contentTowerTime);
    		
    		var contentTowerAdd = cc.Sprite.create(r_add);
    		contentTowerAdd.setPosition(cc.p(_x+135,_y-13));
    		petAllHpName.addChild(contentTowerAdd,0,this.enumTag.tag_contentAdd);
    		
    		for(var i = 0 ;i<this.petProperArray.length;i++){
    			var name =this.petProperArray[i][0];
    			var hp  = this.petProperArray[i][1];
    			var hpMax =this.petProperArray[i][2];
    			
    			var contentHpName = this.createFontWithBg(name,23,_x+10,_y-i*52-70,false);
    			petAllHpName.addChild(contentHpName);
    			
    			
    			var intoTower =cc.Sprite.create(r_intoTower);
    			intoTower.setPosition(cc.p(_x+135,_y-i*52-75));
    			petAllHpName.addChild(intoTower,0,this.enumTag.tag_contentIntoTower+i); 
    			
    		
    	        //hp rect 
    	        var hpRectSprite = new HpRectSprite();
    			hpRectSprite._rectWidth= 100;
    			hpRectSprite._rectHeigth=8;
    			hpRectSprite._x= _x-78;
    			hpRectSprite._y= _y-i*52-148;
    			hpRectSprite._hp= hp;
    			hpRectSprite._maxHp= hpMax;
    	        hpRectSprite.setPosition(cc.p(40,60));
    	        petAllHpName.addChild(hpRectSprite);
    			
    			
    		}
    		return petAllHpName;
    	},
    	
    	getCurrentTowerProperbyIndex:function(_aIndex,index){
    		return this.towerProperArray[_aIndex][index];
    	},
    	
    	createContentWithBg:function(_positionX,_positionY,_contentWidth,_contentHeight,isNeedLine,lineX,lineY){
    		var node = cc.Node.create();
    		node.setPosition(cc.p(_positionX,_positionY));
    		var upLeft = cc.Sprite.create(r_contentUpLeft);
    		var upRight = cc.Sprite.create(r_contentUpRight);
    		var contentCenter = cc.Sprite.create(r_contentCenter);
    		var downLeft = cc.Sprite.create(r_contentDownLeft);
    		var downRight = cc.Sprite.create(r_contentDownRight);
    		
    		
    		var centerWidth =contentCenter.getContentSize().width;
    		var centerHeight =contentCenter.getContentSize().height;
    		
    		var hengCount = (_contentWidth-centerWidth-centerWidth)/centerWidth;
    		var shuCount = (_contentHeight-centerHeight-centerHeight)/centerHeight;
    		
    		for(var i =0;i<hengCount;i++){ 
    			
    			for(var j =0; j<shuCount; j++){
    				var contentCenter = cc.Sprite.create(r_contentCenter);
    				contentCenter.setPosition(cc.p(centerWidth*i,-centerHeight*j));
    				node.addChild(contentCenter); 
    			}
    			if(isNeedLine){
    				//up line back
    				var contentUp = cc.Sprite.create(r_contentUp);
    				contentUp.setPosition(cc.p(centerWidth*i+lineX,lineY));
    				node.addChild(contentUp);
    			}
    			//up line
    			var contentUp = cc.Sprite.create(r_contentUp);
    			contentUp.setPosition(cc.p(centerWidth*i,0));
    			node.addChild(contentUp);
    			//down line
    			var contentDown= cc.Sprite.create(r_contentDown);
    			contentDown.setPosition(cc.p(centerWidth*i,-centerHeight*shuCount));
    			node.addChild(contentDown); 
    			
    		}
    		upRight.setPosition(cc.p((centerWidth-1)*hengCount,0));
    		
    		for(var j =0; j<shuCount; j++){
    			//left line
    			var contentLeft= cc.Sprite.create(r_contentLeft);
    			contentLeft.setPosition(cc.p(0,-centerHeight*(j+1)));
    			node.addChild(contentLeft);
    			//right line
    			var contentRight= cc.Sprite.create(r_contentRight);
    			contentRight.setPosition(cc.p((centerWidth-1)*hengCount,-centerHeight*(j+1)));
    			node.addChild(contentRight);
    		}
    		downLeft.setPosition(cc.p(0,-centerHeight*shuCount));
    		downRight.setPosition(cc.p((centerWidth-1)*hengCount,-centerHeight*shuCount));
    		
    		node.addChild(upLeft);
    		node.addChild(upRight);
    		node.addChild(downLeft);
    		node.addChild(downRight);
    		
    		return node;
    	},
    	
    	
        createFontWithBg:function(fontString,fontWidth,_positionX,_positionY,isAddFontCollisiton,_dyTime,_collisitionArrayIndex) {
    		var node = cc.Node.create();
    		
    		var font = cc.LabelTTF.create(fontString, "Arial", fontWidth);
    		font.setColor(cc.c3b(0,0,0));
    		font.setPosition(cc.p(_positionX,_positionY)); 
    		var fontWidth =font.getContentSize().width;  
    		
    		var fontBgLeft =cc.Sprite.create(r_fontLeft);  
    		fontBgLeft.setPosition(cc.p(_positionX-fontWidth*0.5,_positionY));
    		
    		var tempFontMiddle =cc.Sprite.create(r_fontCenter);
    		var fontMiddleWidth=tempFontMiddle.getContentSize().width;
    		var countMiddle =fontWidth / fontMiddleWidth;
    		
    		var middlePX = _positionX - fontWidth*0.5;
    		
    		var fadeOutTime =0.1;
    		
    		for(var i =0;i<countMiddle;i++){
    			var fontBgMiddle =cc.Sprite.create(r_fontCenter); 
    			fontBgMiddle.setPosition(cc.p(middlePX,_positionY));
    			middlePX+=fontMiddleWidth;
    			node.addChild(fontBgMiddle);
    			
    			if(isAddFontCollisiton){ 
    				fontBgMiddle.setOpacity(0);
    				fontBgMiddle.runAction(cc.Sequence.create(cc.DelayTime.create(_dyTime),cc.FadeIn.create(fadeOutTime)));
    			}
    		}
    		var fontBgRight =cc.Sprite.create(r_fontRight);
    		fontBgRight.setPosition(cc.p(middlePX,_positionY)); 
    		node.addChild(fontBgLeft);
    		if(isAddFontCollisiton){ 
    			fontBgLeft.setOpacity(0);
    			fontBgLeft.runAction(cc.Sequence.create(cc.DelayTime.create(_dyTime),cc.FadeIn.create(fadeOutTime)));
    		} 
    		node.addChild(fontBgRight);
    		if(isAddFontCollisiton){ 
    			fontBgRight.setOpacity(0);
    			fontBgRight.runAction(cc.Sequence.create(cc.DelayTime.create(_dyTime),cc.FadeIn.create(fadeOutTime)));
    		} 
    		node.addChild(font);
    		if(isAddFontCollisiton){ 
    			font.setOpacity(0);
    			font.runAction(cc.Sequence.create(cc.DelayTime.create(_dyTime),cc.FadeIn.create(fadeOutTime)));
    		}
    		//add tower name collisiton x,y,w,h
    		if(isAddFontCollisiton){
    			this.pointStrCollisitionArray[_collisitionArrayIndex][0]=_positionX-fontWidth*0.5-3;
    			this.pointStrCollisitionArray[_collisitionArrayIndex][1]=_positionY-14;
    			this.pointStrCollisitionArray[_collisitionArrayIndex][2]=font.getContentSize().width+10;
    			this.pointStrCollisitionArray[_collisitionArrayIndex][3]=font.getContentSize().height;
    		}
    		
    		return node;
        },
    	
    
        onEnter:function () { 
            cc.Director.getInstance().getTouchDispatcher().addTargetedDelegate(this, 0, true);
            this._super();
        },
        onExit:function () {
            cc.Director.getInstance().getTouchDispatcher().removeDelegate(this);
            this._super();
        },
    });
    
    var gameScene = cc.Scene.extend({
        onEnter:function () {
            this._super();   
            layer = new gameLayer();
            layer.init();
            this.addChild(layer);
        }
    });
    




  • 相关阅读:
    抽象函数
    函数的奇偶性习题
    高斯函数的那些事
    分段函数
    二次函数习题
    图是学习高中数学的生命线
    恒成立能成立恰成立习题
    http和https的作用与区别
    vue使用v-if v-show页面闪烁,div闪现的解决方法
    理解prototype、proto和constructor的三角关系
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3884158.html
Copyright © 2011-2022 走看看