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