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.callback,this);

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

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

        var item5=new cc.MenuItemFont("删除元素3",this.callback,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,Math.random()*450);

                this.addChild(newobj,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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值