CVP认证学习笔记--李天宇026对数组的使用

前端之家收集整理的这篇文章主要介绍了CVP认证学习笔记--李天宇026对数组的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本节主要通过对数组的使用,实现了节点的添加删除,因为是在javascript的语法基础上进行了升华,所以不是很难。下面是本节的内容

首先先创建一个数组用来存放相关节点。往数组的末尾添加元素用的是push方法。在最前边添加元素用的是unshift方法,这个方法会返回一个新长度。删除最后边的元素用的是pop方法删除指定位置后的几个元素用的是splice(x,y);第一个参数代表下标,第二个元素代表的是后边的几个元素。具体代码如下:

var allnpc = new Array();

var count = 0;

var HelloWorldLayer = cc.Layer.extend({

sprite:null,

ctor:function () {

this._super();

var size = cc.winSize;

var item1=new cc.MenuItemFont("添加元素1",this.callback,this);

var item2=new cc.MenuItemFont("添加元素2",this);

var item3=new cc.MenuItemFont("删除元素",this);

var item4=new cc.MenuItemFont("删除元素2",this);

var item5=new cc.MenuItemFont("删除元素3",this);

var menu = new cc.Menu(item1,item2,item3,item4,item5);

this.addChild(menu,100);

var show = new cc.LabelTTF("共有0个元素","黑体",30);

this.addChild(show,0);

show.setTag(100);

show.setPosition(size.width/2,size.height/2);

//本节作业:

//本章介绍了数组的使用

//通过数组可以动态管理一组对象

//作业要求

//将这5个按钮对应于添加一个Node后将node显示

//这是第N个节点

//删除某个Node后,将这个Node从屏幕移除

item1.y=200;

item2.y=160;

item3.y=120;

item4.y=80;

item5.y=40;

item1.setTag(11);

item2.setTag(12);

item3.setTag(13);

item4.setTag(14);

item5.setTag(15);

return true;

},

callback: function (obj) {

var newobj = new cc.Sprite(res.logo_png);

newobj.tag = allnpc.length+1;

switch(obj.getTag()){

case 11:

//最后添加

allnpc.push(newobj);

newobj.setPosition(Math.random()*800,Math.random()*450);

this.addChild(newobj,0);

this.getChildByTag(100).setString("共有"+newobj.tag+"个元素");

break;

case 12:

//unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

// count++;

allnpc.unshift(newobj);

newobj.setPosition(Math.random()*800,0);

this.getChildByTag(100).setString("共有"+newobj.tag+"个元素");

break;

case 13:

if(allnpc.length>0){

//count--;

var pop=allnpc.pop();

this.removeChild(pop);

this.getChildByTag(100).setString("共有"+ allnpc.length+"个元素");

break;

}

case 14:

var splice=allnpc.splice(1,2);

if(allnpc.length>0){

//count--;

for (var i=0;i<splice.length;i++) {

this.removeChild(splice[i]);

}

this.getChildByTag(100).setString("共有"+allnpc.length+"个元素");

break;

}

case 15:

Array.prototype.delete = function(index){

return this.splice(index-1,1);

}

var custom1=allnpc.delete(1);

if(allnpc.length>0){

//count--;

for (var i=0;i<custom1.length;i++) {

this.removeChild(custom1[i]);

}

this.getChildByTag(100).setString("共有"+allnpc.length+"个元素");

break;

}

}

}

});

var HelloWorldScene = cc.Scene.extend({

onEnter:function () {

this._super();

var layer = new HelloWorldLayer();

this.addChild(layer);

}

});

作业传送门:

http://www.cocoscvp.com/index.php?m=Admin&c=mylesson&a=code&project=8&stepid=28&num=1&cid=5

原文链接:https://www.f2er.com/cocos2dx/339508.html

猜你在找的Cocos2d-x相关文章