基于最新版 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/ba02b99cb3febc0c87faf1d9c776ad2a89080b29aa30e47b97ecfc4ac717a353/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3130333632395f36396239373834385f3336393931372e6a706567)
![Simulator Screen Shot - iPhone 5s - 2018-07-07 at 11.22.14副本.jpg 输入图片说明](https://camo.githubusercontent.com/4990b0eeeca97354121b23a5edf9b75f2dbeb6357054199159e9512fbd79a49e/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730372f3134313833335f34376139633563655f3336393931372e6a706567)
![Simulator Screen Shot - iPhone 5s - 2018-07-07 at 14.01.40副本.jpg 输入图片说明](https://camo.githubusercontent.com/861fa2d39bf273b756ad8a5e65540cec2a9dc60ae7610100ca7c3b5b3283f316/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/46955b7316692e2d88afdbaa67ae1dfefc4d78015efdbd35cbc692c9312f8aba/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3133313130365f35616464323863365f3336393931372e706e67)
- 下载安装好Cocostudio3.10,打开UI.ccs文件即可编辑和发布UI
![WX20180706-105153.png UI编辑器](https://camo.githubusercontent.com/dfb7871d88b9f5ad71bfeb7c075297500215b561621ec6a36c1c86aa3d9e7d32/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3130353232375f33363730393434355f3336393931372e706e67)
- MAC直接用Xcode 或者AppCode 直接打开 proj.ios_mac 即可运行
![WX20180706-125720.jpg 输入图片说明](https://camo.githubusercontent.com/0092232c2588f423b3275512fb558699e804925467f247c64a58dce7d3133c97/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3132353834355f33613939336164345f3336393931372e6a706567)
- AndroidStudio安装直接打开 proj.android 项目即可运行
![WX20180706-113529.jpg 输入图片说明](https://camo.githubusercontent.com/c608c5a4aec40a0a90d193e9c1d7532093042bca1d093ec2cb30452269b473ff/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/45df24a22a6e343e1b9e30871ec0b49a32e3d61e4fdf31f07183ce998f7b5b9b/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730382f3138333530335f64316635393966325f3336393931372e706e67)