开源软件名称:mahjong
开源软件地址:https://gitee.com/xiyoufang/cocostudio-mahjong
开源软件介绍:
COCOS2D-X 单机麻将项目介绍基于最新版 Cocos2d-X 3.17 与 cocostudio V3.10 开发的单机麻将游戏,麻将算法为商业级麻将服务器端算法,整个项目代码精简、注释详细。可以运行于iOS,Mac,Android,Windows平台。 - 如果你刚刚接触Cocos2d-X 这绝对是个不错的入门项目
- 如果是你C++初学者或者其他语言转游戏开发,这项目没有复杂的语法绝对是一个不错的学习项目
- 如果你是游戏开发从业者想转行棋牌行业,这项目的棋牌算法绝对能够给予你启发
软件架构- 游戏引擎基于最新版本 Cocos2d-X v3.17
- 游戏UI设计使用 Cocostudio3.10
- 游戏使用C++开发
- 商业级麻将算法
关于 cocos2d-x-3.17- 由于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 即可运行
源码说明UI项目说明- 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 ,一起讨论游戏开发技术。 |
请发表评论