COCOS2D-X 单机麻将
项目介绍
基于最新版 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/55fdd9ef20b13c61bb52088e0970fa5e40ec998a0cb8b20b32faea61a4f806b6/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3130333632395f36396239373834385f3336393931372e6a706567)
![Simulator Screen Shot - iPhone 5s - 2018-07-07 at 11.22.14副本.jpg 输入图片说明](https://camo.githubusercontent.com/f3d70aa84032499e76128aad04872d7dcf6730a8cc063f596e62bab7a7836263/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730372f3134313833335f34376139633563655f3336393931372e6a706567)
![Simulator Screen Shot - iPhone 5s - 2018-07-07 at 14.01.40副本.jpg 输入图片说明](https://camo.githubusercontent.com/fb50ce494387565bb1ab99655170399d3bd9b72ea2a98cd7d681b054c8949216/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/500662883573f8188c52d837d9060232d2658b6d111e6793dfd95d596edb5f62/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3133313130365f35616464323863365f3336393931372e706e67)
- 下载安装好Cocostudio3.10,打开UI.ccs文件即可编辑和发布UI
![WX20180706-105153.png UI编辑器](https://camo.githubusercontent.com/53fe2f58e8b5094792bfffd682fd01dfc25a0a03bfa83bcddd94a48f00879304/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3130353232375f33363730393434355f3336393931372e706e67)
- MAC直接用Xcode 或者AppCode 直接打开 proj.ios_mac 即可运行
![WX20180706-125720.jpg 输入图片说明](https://camo.githubusercontent.com/c9809462758853e190488025063b4ca600a4731fa683083844d0bf60fc14c14c/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3132353834355f33613939336164345f3336393931372e6a706567)
- AndroidStudio安装直接打开 proj.android 项目即可运行
![WX20180706-113529.jpg 输入图片说明](https://camo.githubusercontent.com/af356077645ccf9ccf0cd29819a8905c2a0a55d06eef5aaa560e03ea7481c5c6/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730362f3131343434335f30376666303935665f3336393931372e6a706567)
- Visual Studio 安装未验证
源码说明
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 ,一起讨论游戏开发技术。
![temp_qrcode_share_112958956.png 输入图片说明](https://camo.githubusercontent.com/3a5bbdb1703841a79856a02027f95d174f7c7a8266ff55f1f4f47232c1819bc9/68747470733a2f2f696d616765732e67697465652e636f6d2f75706c6f6164732f696d616765732f323031382f303730382f3138333530335f64316635393966325f3336393931372e706e67)