甜品消消樂知識點總結

2021-10-12 22:57:07 字數 3428 閱讀 6069

甜品消消樂知識點總結

本片部落格介紹生活中常見的三消遊戲的一些做法和知識點o(∩_∩)o哈哈~

unity 開發單位是以公尺為單位的,所以當不知道物體大小時 可以新建乙個cube 方塊做對比

格仔在甜品下面,所以同等layer 層 我們依舊可以把order in layer 設定為-1

在設定背景時,基本上可以把背景放的稍微大點 防止某些情況下**

可以選中私有靜態類例項那一行 按快捷鍵ctrl + r + e 來實現屬性的快速編寫

根據雙層for迴圈生成的格仔設定xy軸一般都會這樣

因為中心點在中間

由於甜品是從上往下掉的 ,所以y 一直在減小 所以可以調整為

gameobject chocolate = instantiate(gridprefab, correctpositon(x, y), quaternion.identity);

chocolate.transform.setparent(transform);

public vector3 correctpositon(int x, int y)

當使用到字典時 我們希望在面板上能看到相關資料

則我們可以先建立字典

然後建立相應結構體 最後定義乙個list

然後在start裡面給字典把list 上的值賦給字典

這行保證我們的結構體可以序列化

賦值階段

void start()}}

二維陣列的定義方式

如果列舉是定義在類內部 則需要使用類名點列舉名才能獲取到

private gamemanager.sweetstype type;

糖果的初始化

隱藏該變數在面板上的顯示

接下來是核心的填充演算法

public ienumerator allfill()

//清除所有我們已經匹配好的甜品

needrefill= clearallmatchedsweet();}}

//分步填充

public bool fill()

else //斜向填充 如果下面的不為空 則判斷左下 和 右下 是否為空

else if (!sweetabove.canmove() && sweetabove.type != sweetstype.empty) //否則如果是餅乾或者空

}if (!canfill) }}

}}}}

}}//最上排的特殊情況

for (int x = 0; x < xcolumn; x++)

}return fillednotfinished;

}

然後是核心的匹配橫消除或者縱消除的演算法

//匹配方法

public listmatchsweets(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型匹配

//檢查一下當前行遍歷列表中的元素數量是否大於3

if (matchrowsweets.count>=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型匹配

//檢查一下當前行遍歷列表中的元素數量是否大於3

if (matchlinesweets.count >= 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;

}滑鼠點下獲取物件1 移動到物件2鬆開完成交換

做動畫時記得新建乙個空狀態作為預設動畫 這樣可以設定條件 在觸發時執行動畫

甜品消消樂 13 匹配的核心演算法

直線匹配 將同一型別的棋子加入行遍歷列表,若最終行遍歷 左,右 列表 3,消除棋子。3則進行列遍歷,將同一型別的棋子加入列遍歷列表。匹配方法 public list matchsweets gamesweet sweet,int newx,int newy else if x 0 x xcolumn...

知識點總結

1,迴圈中的中斷 continue 跳出此次迴圈,繼續for迴圈 break 跳出當前for迴圈 return 跳出當前方法 2,字串的操作 componentseparatedbystring stringbyreplacingoccurencesofstring withstring iskin...

知識點總結

oncreate onstrat onresume onpause onstop onrestart ondestroy standard 啟動activity都會產生乙個新的activity 預設模式 singletop 啟動activity允許多個,但不允許重疊 singletask 只允許有乙...