后面一些更改就是实现下落下标更改的方法。这个方法要在一开始检测三色的时候调用
with3Arr = this.filterDelSame(with3Arr,[])
return with3Arr
updateCellFallDownNum : function(cell){
if(cell == null) return //数组为空
if(cell.fallDownNum == 0) return //数组没有空的块
var rempPo = cc.pAdd(cc.p(0,cell.fallDownNum),cell.arrayIndex) //实现下落,下标更改
this.cellArr[rempPo.x][rempPo.y] = cell
cell.visible = true
this.cellArr[cell.arrayIndex.x][cell.arrayIndex.y] = null
cell.fallDown()
cell.fallDownNum = 0
},
还要删除数组里的相同元素
filterDelSame : function(arr1,arr2){
var returnArr = arr1.concat(arr2) //把两个数组合并
for(var i = 0;i<returnArr.length;i++){
var nowPo = returnArr[i]
for(var j = i+1;j<returnArr.length;j++){
if(cc.pSameAs(returnArr[j],nowPo)){
returnArr.splice(j,1) //把两个数组中相同元素删除
j--
}
}
}
return returnArr //最后获得一个没有相同元素的数组
},
做完了差不多之后实现一些拓展的功能,也就是四个消除后道具的实现,这个效果就是四个消除会生成一个道具,然后道具消除会把一行消除掉
setToSpecial:function(){
this.color = cc.color(255,0,0,255)
this.scale = 0.8
this.isSpecial = true
},
resetSpecial:function(){
this.scale = 1
//this.selectPic.removeFromParent(true)
this.isSpecial = false
},
PS:isSpecial 在最上边定义为false。