本节主要通过对数组的使用,实现了节点的添加和删除,因为是在@H_301_1@JavaScript的语法基础上进行了升华,所以不是很难。下面是本节的内容:
首先先创建一个数组用来存放相关节点。往数组的末尾添加元素用的是@H_301_1@push方法。在最前边添加元素用的是@H_301_1@unshift方法,这个方法会返回一个新长度。删除最后边的元素用的是@H_301_1@pop方法。删除指定位置后的几个元素用的是@H_301_1@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("添加元素@H_301_1@1",this.callback,this);
var item2=new cc.MenuItemFont("添加元素@H_301_1@2",this);
var item3=new cc.MenuItemFont("删除元素@H_301_1@",this);
var item4=new cc.MenuItemFont("删除元素@H_301_1@2",this);
var item5=new cc.MenuItemFont("删除元素@H_301_1@3",this);
var menu = new cc.Menu(item1,item2,item3,item4,item5);
this.addChild(menu,100);
var show = new cc.LabelTTF("共有@H_301_1@0个元素@H_301_1@","黑体@H_301_1@",30);
this.addChild(show,0);
show.setTag(100);
show.setposition(size.wIDth/2,size.height/2);
//本节作业:
//本章介绍了数组的使用
//通过数组可以动态管理一组对象
//作业要求
//将这@H_301_1@5个按钮对应于添加一个@H_301_1@Node后将@H_301_1@node显示
//这是第@H_301_1@N个节点
//当删除某个@H_301_1@Node后,将这个@H_301_1@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("共有@H_301_1@"+newobj.tag+"个元素@H_301_1@");
break;
case 12:
//unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
// count++;
allnpc.unshift(newobj);
newobj.setposition(Math.random()*800,0);
this.getChildByTag(100).setString("共有@H_301_1@"+newobj.tag+"个元素@H_301_1@");
break;
case 13:
if(allnpc.length>0){
//count--;
var pop=allnpc.pop();
this.removeChild(pop);
this.getChildByTag(100).setString("共有@H_301_1@"+ allnpc.length+"个元素@H_301_1@");
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("共有@H_301_1@"+allnpc.length+"个元素@H_301_1@");
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("共有@H_301_1@"+allnpc.length+"个元素@H_301_1@");
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
总结以上是内存溢出为你收集整理的CVP认证学习笔记--李天宇026对数组的使用全部内容,希望文章能够帮你解决CVP认证学习笔记--李天宇026对数组的使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)