1. 程式人生 > 其它 >unity3d棋牌遊戲教程之手機鬥地主的發牌功能實現

unity3d棋牌遊戲教程之手機鬥地主的發牌功能實現

這次小編Unity3D棋牌遊戲教程主要教手機鬥地主的發牌功能的實現,話不多說,咱們先建立專案:

1.建立Unity2017的2D專案,暫且叫做ChinesePoker吧,就用自帶的UGUI來編輯UI, 目前只匯入iTween外掛,用來方便控制動畫效果。

目錄結構如下:

考慮卡牌需要動態生成,我把圖片資源放到Resource目錄,並按照Card_型別(大小王,紅桃,黑桃,方片,梅花 )_數字(卡牌所在型別中的數字)命名。

2.建第一個場景,預設叫001_Playing,作為主要玩牌的場景,暫時作為第1個場景,後期新場景新增進來,我們可能再調整場景的順序。

新增一個UI->Image,選擇一個背景圖片;

新增3個UI->Canvas,分別取名叫Player0,Player1,Player2,代表玩家,對手1,對手2;

每個Player底下,新增一個Image,選擇卡牌背面圖片,分別表示發牌時各自牌堆的位置,並在桌面放置一個總牌堆的位置,預設not active;

建一個卡牌的圖片,命名為Card,並作為預製件,放入Player0中間一個,稍微偏移一定位置再放置一個,用來計算每張牌跟臨牌相對位置,設定not active;

建一個卡牌的背面圖片,命名Cover,也作為預製件;

新增一個測試按鈕TestButton;

差不多了,大概結構如下:

建立卡牌、玩家資訊

1.新建CardInfo類,主要不要繼承預設的MonoBehaviour類,用來作為卡牌的實體類;

實現IComparable介面,後面手牌排序會用到。

2.Card預製件上,新增Card指令碼,主要儲存對應CardInfo資訊、選中狀態,並載入卡牌圖片;

3.考慮玩家分為2種類型,先建立一個公共的基類,實現玩家公共的方法,比如增加一張卡牌、清空所有卡片、排序等;

4.新增第一種玩家(自身玩家)PlayerSelf,繼承Player,並掛載到Player0物件上;

實現整理手牌的邏輯:發牌後,從中間的位置,根據大小依次將牌展開;

獲取牌面點選事件,將牌選中或取消選中;

5.新增另一種玩家(對手玩家)PlayerOther,繼承Player,並掛載到Player1,Player2物件上;

Camera上新增卡牌管理指令碼:CardManager

1.實現洗牌邏輯,這裡用生成GUID隨機性後排序,達到洗牌的目的;

2.記錄當前發牌回合,每發一張牌,跳轉給下一個玩家;

3.記錄當前玩牌回合(將來可能用到),每玩一局,跳轉下個玩家開始發牌;

4.發牌邏輯:

設定牌堆的顯示,動畫依次給每位玩家發一張卡牌,發完牌後,隱藏牌堆,並將玩家的卡牌排序並展示。

以上就是小編Unity3D棋牌遊戲教程了,詳細程式碼歡迎前來諮詢~

如果你還覺得不過癮的話,就可以嘗試反編譯一些市面上流行的Unity3D遊戲來獲取程式碼,畢竟真實生產環境中的程式碼才是最值得深入研究的

在完成以上的學習過程中,看一些第三方的部落格也是蠻有用的手段,在這裡推薦下小編學習Unity3d的網站,從基礎的資料型別講起,到後期的面向物件,正則表示式,包含委託事件特性等高階課程。這套課程非常全面,從入門到就業全包啦!

https://www.bilibili.com/video/BV1wZ4y1A7if