講述三消遊戲邏輯:
專案簡介:支援六種元素,以及障礙元素,行,列,彩虹特殊道具
核心就是填充演算法和乙個匹配演算法:
填充:本文採用分步填充(即一次只向下移動乙個單位)
public
bool
fill()
else
//斜向填充
else if (!sweetabove.canmove() && sweetabove.type != sweetstype.empty)
}if (!canfill)}}
}}*/}}
}}//最上排的特殊情況,初始化最上面的一排//不放在移動函式後會導致最上一排為空
for(
int x =
0; x <
9; x++)}
return fillednotfinished;
}
匹配:
本文主要利用三個列表(即行,列,最終)來完成
```csharp
public list
matchsweets
(gamesweet sweet,
int newx,
int newy)
else
if(x<
0||x>=xcolumn)
//超出棋盤則停止
if(sweets[x,newy]
.cancolor()
&&sweets[x,newy]
.coloredcomponent.color==color)
else}}
if(matchrowsweets.count>=3)
}//l t型匹配
//檢查一下當前行遍歷列表中的元素數量是否大於3if(
false
)>=3)
else
if(y<
0||y>=yrow)
if(sweets[matchrowsweets[i]
.x,y]
.cancolor()
&&sweets[matchrowsweets[i]
.x,y]
.coloredcomponent.color==color)
else}}
if(matchlinesweets.count<2)
else
break;}
}}if(finishedmatchingsweets.count>=3)
matchrowsweets.
clear()
; matchlinesweets.
clear()
; matchlinesweets.
add(sweet)
;//列匹配
//i=0代表往上,i=1代表往下
for(
int i =
0; i <=
1; i++
)else
if(y <
0|| y >= yrow)
if(sweets[newx, y]
.cancolor()
&& sweets[newx, y]
.coloredcomponent.color == color)
else}}
if(matchlinesweets.count >=3)
}//l t型匹配
//檢查一下當前行遍歷列表中的元素數量是否大於3if(
false
) >= 3)
else
if(x <
0|| x >= xcolumn)
if(sweets[x, matchlinesweets[i]
.y].
cancolor()
&& sweets[x, matchlinesweets[i]
.y].coloredcomponent.color == color)
else}}
if(matchrowsweets.count <2)
else
break;}
}}if(finishedmatchingsweets.count >=3)
}return
null
;}
具體可參考:
三消遊戲(三)
後面一些更改就是實現下落下標更改的方法。這個方法要在一開始檢測三色的時候呼叫 with3arr this.filterdelsame with3arr,return with3arrupdatecellfalldownnum function cell 還要刪除陣列裡的相同元素 filterdels...
三消遊戲(二)
做好了三消消除掉落之後,並且消除之後儲存在陣列之中 rrayindexarr this.filterdelsame specilarr,arrayindexarr if cell cell.settospecial 清除同顏色的塊兒 並且二維陣列中的位置置為null for var index in...
消除類遊戲之 三消遊戲
1.瓦片地圖 2.array 3.遊戲架構 1選中 2 交換位置 3消除 所以肯定會用到 virtual bool cctouchbegan cctouch touch,ccevent event virtual void cctouchmoved cctouch touch,ccevent eve...