基于最新版 Cocos2d-X 3.17 与 cocostudio V3.10 开发的单机麻将游戏,麻将算法为商业级麻将服务器端算法,整个项目代码精简、注释详细。
可以运行于iOS,Mac,Android,Windows平台。
- 如果你刚刚接触Cocos2d-X 这绝对是个不错的入门项目
- 如果是你C++初学者或者其他语言转游戏开发,这项目没有复杂的语法绝对是一个不错的学习项目
- 如果你是游戏开发从业者想转行棋牌行业,这项目的棋牌算法绝对能够给予你启发
- 游戏引擎基于最新版本 Cocos2d-X v3.17
- 游戏UI设计使用 Cocostudio3.10
- 游戏使用C++开发
- 商业级麻将算法
- 由于cocos2dx源码比较庞大,git 上不包括Cocos2d-X 3.17的完整源码, cocos2d目录里面是一个精简版的,不想下载完整版的可以直接用它,本游戏用它足矣。
- 精简内容:去掉了 3D,Physics,VR,Network,Box2D,chipmunk,scripting,spine,cocosbuilder等相关的代码和库。
- 编译结果:精简版的cocos2d编译出来的so文件与完整版相比要小8M,因为少了很多文件编译速度也大大加快。
- 下载并且安装好CocoStudio3.10,打开UI.ccs文件即可编辑和发布UI
- MAC直接用Xcode 或者AppCode 直接打开 proj.ios_mac 即可运行
- AndroidStudio安装直接打开 proj.android 项目即可运行
- Visual Studio 建议安装VS2017,直接打开 proj.win32 下面的 solution.sln 即可运行
- 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 ,一起讨论游戏开发技术。