基于最新版 Cocos2d-X 3.17 与 cocostudio V3.10 开发的单机麻将游戏,麻将算法为商业级麻将服务器端算法,整个项目代码精简、注释详细。
- 如果你刚刚接触Cocos2d-X 这绝对是个不错的入门项目
- 如果是你C++初学者或者其他语言转游戏开发,这项目没有复杂的语法绝对是一个不错的学习项目
- 如果你是游戏开发从业者想转行棋牌行业,这项目的棋牌算法绝对能够给予你启发
![Simulator Screen Shot - iPhone 5s - 2018-07-06 at 10.21.08.jpg 截图](https://camo.githubusercontent.com/6499d6629b6e2ee24e92d78113bd33d90a30f3cd92b005360b34af2dd7f4321e/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3130333632395f36396239373834385f3336393931372e6a706567)
![Simulator Screen Shot - iPhone 5s - 2018-07-07 at 11.22.14副本.jpg 输入图片说明](https://camo.githubusercontent.com/f462502cee4bf8e506ac15486a4bf0ff1fbbcdcd30e7fb8ab69af611f90fec7c/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730372f3134313833335f34376139633563655f3336393931372e6a706567)
![Simulator Screen Shot - iPhone 5s - 2018-07-07 at 14.01.40副本.jpg 输入图片说明](https://camo.githubusercontent.com/93e433f91219f2cbe61cade9d3642c08ba7188e4d261d37bfc09dfcb723313b3/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730372f3134313834365f32316334303039625f3336393931372e6a706567)
- 游戏引擎基于最新版本 Cocos2d-X v3.17
- 游戏UI设计使用 Cocostudio3.10
- 游戏使用C++开发
- 商业级麻将算法
- 由于Cocos2d源码比较庞大,GIT上不包括Cocos2d-X 3.17源码,所以第一步需要下载并且安装 cocos2d-x-3.17 安装说明移驾 最新版本Cocos2d-X V3.17开发环境搭建 安装好后使用命令行创建个新项目,将项目里的cocos2d文件夹拷到本项目下,
![WX20180706-130947.png 输入图片说明](https://camo.githubusercontent.com/83f5baa6f9a3f48ba6aa66f381f9d1f892a4d33243d423780409a9dcffd01723/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3133313130365f35616464323863365f3336393931372e706e67)
- 下载安装好Cocostudio3.10,打开UI.ccs文件即可编辑和发布UI
![WX20180706-105153.png UI编辑器](https://camo.githubusercontent.com/8b8b6455a96d4d93cc8a4fff656b0ee571387be62d4cb3e9d528f1b3eee1a5a3/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3130353232375f33363730393434355f3336393931372e706e67)
- MAC直接用Xcode 或者AppCode 直接打开 proj.ios_mac 即可运行
![WX20180706-125720.jpg 输入图片说明](https://camo.githubusercontent.com/854a0ed8a8fd7411206c903fa06830fd63229ddeeebaa7c188e74aeee8abf7f7/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3132353834355f33613939336164345f3336393931372e6a706567)
- AndroidStudio安装直接打开 proj.android 项目即可运行
![WX20180706-113529.jpg 输入图片说明](https://camo.githubusercontent.com/33f3f76a00d515c805f5233b18301518b5ea241a0e0b9bb7fd93ac6cc0f52eb4/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3131343434335f30376666303935665f3336393931372e6a706567)
- Visual Studio 安装未验证
- cocosstudio目录为UI目录
- UI.ccs是UI项目配置文件
文件 |
说明 |
HelloLayer.csd |
欢迎界面层 |
AlertLayer.csd |
弹框层 |
GameLayer.csd |
游戏层 |
SetLayer.csd |
设置层 |
GameOverLayer.csd |
游戏结算层 |
Gang0.csd |
横向显示杠的节点 |
Peng0.csd |
横向显示碰的节点 |
Gang1.csd |
竖向显示杠的节点 |
Peng1.csd |
竖向显示碰的节点 |
BtnPeng.csd |
碰按钮节点 |
BtnGang.csd |
杠按钮节点 |
BtnHu.csd |
胡按钮节点 |
BtnGuo.csd |
过按钮节点 |
EffectZm.csd |
自摸特效 |
EffectPeng.csd |
碰特效 |
EffectHu.csd |
胡特效 |
EffectGang.csd |
杠特效 |
SignAnim.csd |
标记当前出牌动画 |
MainScene.csd |
没用 |
文件 |
说明 |
AppDelegate.h/AppDelegate.cpp |
Cocos2d游戏启动类 |
GameSceneManager.h/GameSceneManager.cpp |
单例,封装创建提示层、设置Scene和Layer等 |
AlertLayer.h/AlertLayer.cpp |
弹出层类 |
HelloWorldScene.h/HelloWorldScene.cpp |
游戏Scene类 |
BaseUILayer.h/BaseUILayer.cpp |
Cocostudio界面基类,封装了部分按钮事件绑定功能 |
HelloLayer.h/HelloLayer.cpp |
游戏初始欢迎界面类 |
GameLayer.h/GameLayer.cpp |
游戏层界面类,用来控制游戏的显示 |
SetLayer.h/SetLayer.cpp |
游戏设置层 |
GameConfig.h/GameConfig.cpp |
加载与存储游戏设置信息 |
ViewControl.h/ViewControl.cpp |
通过观察者模式,控制界面切换 |
ViewObject.h/ViewObject.cpp |
封装界面切换指令与数据 |
UIHelper.h/UIHelper.cpp |
UI工具类,封装节点查找方法 |
Utility.h |
工具类,封装字符串操作方法 |
IPlayer.h |
游戏玩家基类 |
AIPlayer.h/AIPlayer.cpp |
机器人玩家 |
RealPlayer.h/RealPlayer.cpp |
真实玩法 |
GameEngine.h/GameEngine.cpp |
麻将引擎,控制游戏逻辑流转 |
GameLogic.h/GameLogic.cpp |
麻将算法类 |
GameCmd.h |
麻将传递的对象定义 |
AIEngine.h/AIEngine.cpp |
机器人引擎 |
FvMask.h |
标记位操作工具 |
- GameEngine.h中定义的IGameEngineEventListener接口,该接口用于玩家处理游戏事件,AIEngine实现了机器人的游戏事件处理接口,GameLayer中实现了真实玩家的游戏事件处理接口。
- Fork 本项目
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request
- 个人博客 www.xiyoufang.com 获取更多软件开发信息
- gitee项目首页 https://gitee.com/xiyoufang/cocostudio-mahjong
- github项目首页 https://github.com/xiyoufang/mahjong
您也可以加入游戏开发交流QQ群:112958956 ,一起讨论游戏开发技术。
![temp_qrcode_share_112958956.png 输入图片说明](https://camo.githubusercontent.com/4f405fff4d50e9ce27170964f4010a378cb7d9a498dcf6924655a5d121f4b143/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730382f3138333530335f64316635393966325f3336393931372e706e67)