Cocos2d-X 單機麻將
COCOS2D-X 單機麻將
項目介紹
基于最新版 Cocos2d-X 3.17 與 cocostudio V3.10 開發(fā)的單機麻將游戲,麻將算法為商業(yè)級麻將服務(wù)器端算法,整個項目代碼精簡、注釋詳細。
如果你剛剛接觸Cocos2d-X 這絕對是個不錯的入門項目
如果是你C++初學(xué)者或者其他語言轉(zhuǎn)游戲開發(fā),這項目沒有復(fù)雜的語法絕對是一個不錯的學(xué)習(xí)項目
如果你是游戲開發(fā)從業(yè)者想轉(zhuǎn)行棋牌行業(yè),這項目的棋牌算法絕對能夠給予你啟發(fā)
軟件架構(gòu)
游戲引擎基于最新版本 Cocos2d-X v3.17
游戲UI設(shè)計使用 Cocostudio3.10
游戲使用C++開發(fā)
商業(yè)級麻將算法
安裝教程
由于Cocos2d源碼比較龐大,GIT上不包括Cocos2d-X 3.17源碼,所以第一步需要下載并且安裝cocos2d-x-3.17 安裝好后使用命令行創(chuàng)建個新項目,將項目里的cocos2d文件夾拷到本項目下,
下載安裝好Cocostudio3.10,打開UI.ccs文件即可編輯和發(fā)布UI
MAC直接用Xcode 或者AppCode 直接打開 proj.ios_mac 即可運行
AndroidStudio安裝直接打開 proj.android 項目即可運行
Visual Studio 安裝未驗證
源碼說明
UI項目說明
cocosstudio目錄為UI目錄
UI.ccs是UI項目配置文件
| 文件 | 說明 |
|---|---|
| HelloLayer.csd | 歡迎界面層 |
| AlertLayer.csd | 彈框?qū)?/td> |
| GameLayer.csd | 游戲?qū)?/td> |
| SetLayer.csd | 設(shè)置層 |
| GameOverLayer.csd | 游戲結(jié)算層 |
| Gang0.csd | 橫向顯示杠的節(jié)點 |
| Peng0.csd | 橫向顯示碰的節(jié)點 |
| Gang1.csd | 豎向顯示杠的節(jié)點 |
| Peng1.csd | 豎向顯示碰的節(jié)點 |
| BtnPeng.csd | 碰按鈕節(jié)點 |
| BtnGang.csd | 杠按鈕節(jié)點 |
| BtnHu.csd | 胡按鈕節(jié)點 |
| BtnGuo.csd | 過按鈕節(jié)點 |
| EffectZm.csd | 自摸特效 |
| EffectPeng.csd | 碰特效 |
| EffectHu.csd | 胡特效 |
| EffectGang.csd | 杠特效 |
| SignAnim.csd | 標記當前出牌動畫 |
| MainScene.csd | 沒用 |
源碼說明
| 文件 | 說明 |
|---|---|
| AppDelegate.h/AppDelegate.cpp | Cocos2d游戲啟動類 |
| GameSceneManager.h/GameSceneManager.cpp | 單例,封裝創(chuàng)建提示層、設(shè)置Scene和Layer等 |
| AlertLayer.h/AlertLayer.cpp | 彈出層類 |
| HelloWorldScene.h/HelloWorldScene.cpp | 游戲Scene類 |
| BaseUILayer.h/BaseUILayer.cpp | Cocostudio界面基類,封裝了部分按鈕事件綁定功能 |
| HelloLayer.h/HelloLayer.cpp | 游戲初始歡迎界面類 |
| GameLayer.h/GameLayer.cpp | 游戲?qū)咏缑骖?,用來控制游戲的顯示 |
| SetLayer.h/SetLayer.cpp | 游戲設(shè)置層 |
| GameConfig.h/GameConfig.cpp | 加載與存儲游戲設(shè)置信息 |
| ViewControl.h/ViewControl.cpp | 通過觀察者模式,控制界面切換 |
| ViewObject.h/ViewObject.cpp | 封裝界面切換指令與數(shù)據(jù) |
| UIHelper.h/UIHelper.cpp | UI工具類,封裝節(jié)點查找方法 |
| Utility.h | 工具類,封裝字符串操作方法 |
| IPlayer.h | 游戲玩家基類 |
| AIPlayer.h/AIPlayer.cpp | 機器人玩家 |
| RealPlayer.h/RealPlayer.cpp | 真實玩法 |
| GameEngine.h/GameEngine.cpp | 麻將引擎,控制游戲邏輯流轉(zhuǎn) |
| GameLogic.h/GameLogic.cpp | 麻將算法類 |
| GameCmd.h | 麻將傳遞的對象定義 |
| AIEngine.h/AIEngine.cpp | 機器人引擎 |
| FvMask.h | 標記位操作工具 |
GameEngine.h中定義的IGameEngineEventListener接口,該接口用于玩家處理游戲事件,AIEngine實現(xiàn)了機器人的游戲事件處理接口,GameLayer中實現(xiàn)了真實玩家的游戲事件處理接口。
參與貢獻
Fork 本項目
新建 Feat_xxx 分支
提交代碼
新建 Pull Request
