本站文章均为李华明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上就可以。或者直接使用火狐浏览器进行调试,火狐浏览器是没有限制的。
演示样例项目执行截图:
源代码下载地址(含执行后的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);
}
});