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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |