Cocos2d-X 单机麻将 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Cocos2d-X 单机麻将 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 未知
开发语言 C/C++ 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 游戏/娱乐单机游戏
开发厂商
地区 国产
提 交 者 xiyoufang
适用人群 未知
收录时间 2018-07-09

软件简介

COCOS2D-X 单机麻将

项目介绍

基于最新版 Cocos2d-X 3.17 与 cocostudio V3.10 开发的单机麻将游戏,麻将算法为商业级麻将服务器端算法,整个项目代码精简、注释详细。

  • 如果你刚刚接触Cocos2d-X 这绝对是个不错的入门项目

  • 如果是你C++初学者或者其他语言转游戏开发,这项目没有复杂的语法绝对是一个不错的学习项目

  • 如果你是游戏开发从业者想转行棋牌行业,这项目的棋牌算法绝对能够给予你启发

截图

输入图片说明

输入图片说明

软件架构

  • 游戏引擎基于最新版本 Cocos2d-X v3.17

  • 游戏UI设计使用 Cocostudio3.10

  • 游戏使用C++开发

  • 商业级麻将算法

安装教程

  1. 由于Cocos2d源码比较庞大,GIT上不包括Cocos2d-X 3.17源码,所以第一步需要下载并且安装cocos2d-x-3.17 安装好后使用命令行创建个新项目,将项目里的cocos2d文件夹拷到本项目下,
    输入图片说明

  2. 下载安装好Cocostudio3.10,打开UI.ccs文件即可编辑和发布UI
    UI编辑器

  3. MAC直接用Xcode 或者AppCode 直接打开 proj.ios_mac 即可运行
    输入图片说明

  4. AndroidStudio安装直接打开 proj.android 项目即可运行
    输入图片说明

  5. 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.cppCocos2d游戏启动类
GameSceneManager.h/GameSceneManager.cpp单例,封装创建提示层、设置Scene和Layer等
AlertLayer.h/AlertLayer.cpp弹出层类
HelloWorldScene.h/HelloWorldScene.cpp游戏Scene类
BaseUILayer.h/BaseUILayer.cppCocostudio界面基类,封装了部分按钮事件绑定功能
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.cppUI工具类,封装节点查找方法
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中实现了真实玩家的游戏事件处理接口。

参与贡献

  1. Fork 本项目

  2. 新建 Feat_xxx 分支

  3. 提交代码

  4. 新建 Pull Request

https://gitee.com/xiyoufang/cocostudio-mahjong

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2018/08/20 23:07

麻将(mahjong)

“为什么, 你们的力量在哪里得到如此地 ” “我们比 1 分钟前的我们还要进步, 虽然很微小, 但每转一圈就会前进一寸。这就是钻头啊!” “那才是通向毁灭的道路。为什么就没有意识到螺旋族的极限” “那是你的极限。那只不过是在封闭的宇宙里, 象国王一样将其他生命困住的你自己的极限而已。给我记好了, 我们的钻头将在这片...

0
0
发表了博客
2015/02/16 10:28

cocostudio学习

快捷键:ctrl+鼠标左键 平移渲染区中的项目 ctrl+鼠标滑轮 缩放渲染区中的项目 骨骼与图片绑定:1、创建骨骼 2、右键图片选择绑定骨骼 CocoStudio视频教程系列 http://mobile.51cto.com/aengine-399044.htm Cocos Studio实例下载、Cocos Studio Samples讲解(含操作及代码实现,覆盖各个编辑器) http://www.cocoachina....

0
0
发表于游戏开发专区
2016/01/31 15:18

cocostudio学习

1. 动画和ui都包含三个部分:.exportJson+.plist+.png 2. 在cocostudio里面设置原件隐藏与显示会在显示的时候体现出来。 3. cocostudio 制作ui界面大致分为5个部分  左上,画布列表,所有的界面  左下,对象结构。一个画布的所有元素,以树状形式展现出来  中间,当前选择的画布预览  右边,当前选择的对象的属性...

0
0
发表了博客
2018/03/19 20:44

从零开始学习cocoStudio(1)--cocoStudio是什么?

一、cocoStudio是什么? CocoStudio是一套专业的永久免费的游戏开发工具集,帮助开发者快速创建游戏资源,将大部分繁琐的游戏开发工作使用编辑器来快速制作,CocoStudio包含了游戏开发中核心的几个游戏编辑器,UI编辑器、动画编辑器、场景编辑器、数据编辑器,用于处理游戏中的UI界面、动画资源、游戏场景、游戏数据,针...

0
0
发表了博客
2014/10/21 09:37

cocostudio脚本绑定

自己用

0
1
发表了博客
2013/07/19 18:12

7_12_2013 G: Mahjong problem

Problem G: Mahjong problem Time Limit: 1 Sec Memory Limit: 128 MB Submit: 0 Solved: 0 [ Submit][ Status][ Web Board] Description In Chinese, Mahjong is the mean of ‘MaJiang’, as we know, Dremone is very fond of mahjong, he is always very bored, and he wants to teach the cat of his house to pla...

0
0
发表于游戏开发专区
2016/03/18 17:36

cocostudio导出动画文件解析

cocostudio导出的动画文件包含3个部分 1 xx.png,这是合并了所有游戏图片的大图片 2 xx.plist,描述xx.png里面的图集。指出图块所在大图的坐标和尺寸 3 xx.ExportJson,动画文件,该文件分为以下几部分: config_file_path:描述xx.plist文件路径 config_png_path:描述xx.png文件路径 texture_data:描述动画包含了哪些图...

0
0
发表于游戏开发专区
2014/07/23 16:13

CocoStudio 资源内存释放问题

第一个问题: 请问各位大大,能介绍下释放内存时的那几句话的功能么,或者是那些是必须加的,那些事可选的,如下 1:释放本对象自己 2:SceneReader::sharedSceneReader()->purgeSceneReader(); 3:ActionManager::purgeActionManager(); 4:CCSpriteFrameCache::sharedSpriteFrameCache()->removeUnusedSpriteFrames(); 5:C...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
37 收藏
分享
返回顶部
顶部