cocos2d_js 三消:点击交换版

1,游戏开始逻辑:

—-两个二维数组,一个用于存储显示精灵,一个用于存储显示数据(图片路径中的数字部分)。
—-游戏能够正常开始的标准:不存在三消块,也不能为死局。
即保存显示数据的数组中,不能够存在相邻三个位置的数据一样的情况–A,也不能出现交换后也无法形成三消的情况–B。
确定图片类型总数N,然后将显示数据的数组中的每一个元素赋值为一个0-N之间的随机数。
先检测生成的这一组数据是否存在情况A,如果有就刷新不合格位置的数据,然后重新检测。
如果情况A不存在,就检查情况B,如果存在情况B就刷新所有数据,然后重新检测。

ctor: function () {
        this._super();
        //var gradient = new cc.LayerGradient(cc.color(0,0,0,255),cc.color(0,255,0,255),cc.p(1,1));  //创建渐进色背景层
        var background = new cc.Sprite("res/timg.jpg");
        background.attr({anchorX:0, anchorY:0});
        this.addChild(background);
        var _size = cc.winSize;
        this.shard_width = (new cc.Sprite(res.icon_1)).width;
        var basePoint = cc.p((_size.width - this.shard_width *SHARD_NUM_W + this.shard_width )/2,
                              (_size.height + this.shard_width *SHARD_NUM_H - this.shard_width )/2);
        this.shard_date_arr = Creat2X2Arr(SHARD_NUM_W, SHARD_NUM_H, 1);
        this.shard_sprite_arr = Creat2X2Arr(SHARD_NUM_W, SHARD_NUM_H, 0);
        for(var i=0;i<SHARD_NUM_W;i++)
        {
            for(var j=0;j<SHARD_NUM_H;j++)
            {
                var shard = new Shard();
                shard.setPosition(basePoint.x + i * this.shard_width, basePoint.y - j * this.shard_width);
                //shard.setArrIndex(i, j);
                this.addChild(shard);
                this.shard_sprite_arr[i][j] = shard;
                this.shard_date_arr[i][j] = parseInt(Math.random()*SHARD_TYPE + 1);
            }
        }
        this.buildWithout3Arr();
        cc.eventManager.addCustomListener(USER_CLICK_SHARD_EVENT, this._getTouchOneShard.bind(this));
    },
//创建一个不存在三消的数组
    buildWithout3Arr:function()
    {
   
        var returnArr = this.checkArrHas3(this.shard_date_arr);
        if(returnArr.length > 0)
        {
            for(var index in returnArr)
            {
                var randomPo = returnArr[index];
                this.shard_date_arr[randomPo.x][randomPo.y] = parseInt(Math.random()*SHARD_TYPE + 1)
            }
            this.buildWith
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值