当消除掉落后,重新遍历全局,找到为空的块,然后重新添加精灵在那个空的位置,刚开始我出现了好多毛病,都不大,但消除掉落后不会刷出新的图块,我的毛病有:cc.moveTo()里面的延时忘记写,这一点是大写的坑,,然后cc.p()里面的位置写错,后来不知道什么时候它掉落后会刷出来不过坐标错误,为了方便,我把moveTo改为了moveBy,这样x坐标可直接设为0,避免又出现错误,然后我花了两个小时一直找bug,第一个是Y的坐标错误,改了几次终于对了,然后就是图块在数组中的位置没有设,还有就是调用刷新的函数应该写的地方,具体看程序,不管怎样,最后能够自己把基本的都改了过来,实现了刷新,内心还是挺激动的,感觉自己又进步了,以后要好好加油,虽然现在实现掉落偶尔还会出现位置偏差,不过我已经很满意了!
this.scheduleOnce(function(){ this._check_same_block(false) this._refreshShred() //this.schedule(this._refreshShred,0.001) },0.15) }, _refreshShred:function(){ for(var i=0;i<ShredX;i++){ for(var j=0;j<ShredY;j++){ var _blankShred=this.arr[i][j] if(_blankShred==null){ var shard = new ShredSprite() this.arr[i][j]=shard this.addChild(shard, 1) shard.posX=i; shard.posY=j; shard.setAnchorPoint(0, 0) shard.setPosition(i * shard.width + 200, cc.winSize.height + 40) shard.runAction(cc.moveBy(0.2, cc.p(0, -cc.winSize.height+j * shard.height-40 ))) } } } this._refreshJudge(true) },