甜品消消樂知識點總結
本片部落格介紹生活中常見的三消遊戲的一些做法和知識點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 只允許有乙...