这篇文章是官方整理的:

技术栈

客户端 引擎:Cocos Creator 2.0.6.
语言:Javasctipt
可用开发平台:MAC,Windows
可发布平台: iOS,Android,Windows,Mac,Html5
   
服务器 基础框架:NodeJS 6.16.0
语言:Javasctipt
可开发平台:Mac,Windows,Linux
可部署平台:Mac,Windows,Linux
   
数据库 MySQL 5.1.x
部署平台:Mac,Windows,Linux

目录说明

安装与部署

服务器安装与部署 1、将server目录放至目录服务器
2、在服务器安装NodeJS 4.x版本
3、在数据库服务器安装MYSQL 5.X版本,并配置好权限
4、检查服务器的防火墙,MYSQL权限等是否OK
5、修改config.js或者config_local.js里面的IP和端口
6、启动start_all.sh
   
   
客户端版本发布:Android 1、打开Ccocos Creator->Project->Build
2、platform选择:Android
3、template选择:binary
4、修改自己的packagename 比如 com.youcompany.gamename
5、选择一个有效的Android签名,填上alias和密码
6、点击Build  等待操作完成
7、如果要修改发布的版本信息,请修改 client\build\jsb-binary\frameworks\runtime-src\proj.android\AndroidManifest.xml
下面的
      android:versionCode="70"    用于系统识别
      android:versionName="1.12"   用于显示
8、如果要修改发布的名字,请修改client\build\jsb-binary\frameworks\runtime-src\proj.android\res\values\strings.xml 下面的
<string name="app_name">天天麻将</string>
9、如果要修改发布的图标,请修改 client\build\jsb-binary\frameworks\runtime-src\proj.android\res\下面
drawable-hdpi  drawable-ldpi drawable-mdpi 中的icon.png
10、点击Compile ,等持操作完成
11、client\build\jsb-binary\publish\android 目录下会有发布好的APK
   
   
客户端版本发布:iOS 1、打开Ccocos Creator->Project->Build
2、platform选择:iOS
3、template选择:binary
4、修改自己的packagename 比如 com.youcompany.gamename
5、点击Build,等待操作完成
6、用xCode打开client\build\jsb-binary\frameworks\runtime-src\proj.ios_mac下面的IOS项目
7、按照正常流程进行打包
8、如果要修改IOS启动时的SFLASH SCREEN和图标,替换client\build\jsb-binary\frameworks\runtime-src\proj.ios_mac\ios下的图片即可

技术细节

客户端服务器交互流程 1、客户端请求account_server的get_serverinfo
2、account_server返回大厅IP,当前游戏版本号,游戏下载地址
3、客户端拿到版本号,若版本号不匹配,则提示用户下载
4、如果匹配,则走登陆流程
5、account_server的wechat_auth接口会验证微信账号合法性,并从微信平台拉取用户信息,更新到数据库中
6、account_server返回认证结果
7、客户端拿到认证结果,向hall_server请求登陆
8、hall_server向玩家返回账号信息,房卡数量等
 
9、hall_server还负责房间的创建与进入
10、创建房间或者进入房间成功后,客户端会拿到分配给自己的房间服IP,端口信息,以及登陆用的token
11、客户端使用此token与房间服建立联连,并做后续的操作
12、牌局结束,客户端断开与房间服的连接。 并跳转到大厅场景
   
   
   
服务器间的交互 1、均使用HTTP协议
2、HTTP协议中,使用MD5(参数+IP+密钥)的方式进行合法性验证,以防止恶意访问
  3、utils\db.js 是所有操作数据库的SQL封装,想添加REDIS支持,可通过修改这个接口层来解决
   
   
客户端 客户端代码中,scripts/components下的,均表示需要挂接到场景节点上的组件
不需要挂接到场景上的组件,均放在了scripts/文件夹下
LoadingLogic.js中initMgr函数负责初始化单件类,以方便程序访问
客户端目录下的version_generator.js,是官方给的热更新方案,目前已集成进来。由于官方人员承认有问题。因此未开启。
开启的办法是把启动场景选为update
官方在1.4版本中会提供完整的热更新方案,预计一个月以后(热更新方案并不会对当前的项目代码造成改动。可先开发逻辑,回头再集成)
  为了管理方便,客户端大部分逻辑代码,都挂在了每一个场景的Canvas节点上。只有极少数的,用于扩展UI组件的代码挂在了UI本身上。
因此,主逻辑代码,通过查看Canavs面板,可快速定位

微信接入

   
Android 确保存在 proj.android/libs/libammsdk.jar
确保存在 proj.android/src/com/vivigames/scmj目录
在proj.android/src/org/cocos2dx/javascript/AppActivity.java:onCreate 函数末尾添加WXAPI.Init(this); 
修改 proj.android/src/com/vivigames/scmj/Constants.java中的public static String APP_ID = "wxe39f08522d35c80c";为自己申请的APPID
注:如果自己修改了包名,则com/vivigames/scmj 要重构为自己的包名
在AndroidManifest.xml中加入以下代码
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="sensorLandscape"
            android:exported="true"/>
 
   
   
iOS 确保以下内容存在
frameworks/runtime-src/proj.ios_mac/SDKExport/libWeChatSDK.a
frameworks/runtime-src/proj.ios_mac/SDKExport/WXApi.h
frameworks/runtime-src/proj.ios_mac/SDKExport/WXApiObject.h
 
在项目的Info设置中,添加URLType  示例如下
 
 
 
 
 
 
 
 
   
交互 微信登陆和分享由AnysdkMgr.js发起,参看源码即可明白
微信登陆回调后,与微信平台的验证,在account_server中,appscret也由account_server保管,客户端不可见

语音

注:语音SDK是自已研发的,无需第三方
 
确保android目录下 proj.android/src/VoiceSDK存在
在AndroidManifest.xml添加以下权限
   <uses-permission android:name="android.permission.RECORD_AUDIO" />
 
 
>>>>> IOS <<<<<<<<<
确保ios目录proj.ios_mac/VoiceSDK存在
确保xcode工程中已经对其进行了引用
 
 
用法请参考assets/scripts/VoiceMgr.js
 

后台管理系统

客户端 admin/front
  使用Cocos Creator开发
   
服务器 代码 server/admin_server
  数据库 sql/t_admins.sql
  启动 5.admin_server.bat

下一篇:幼麟棋牌搭建和CentOS服务器部署指南

cocos creator麻将教程系列(九)—— 幼麟棋牌代码讲解相关推荐

  1. cocos creator麻将教程系列(八)—— 达达麻将语音聊天源码分析

    达达麻将语音聊天源码分析 达达麻将版图 语音聊天 1:语音聊天只支持Native平台,iOS与android; 2: 语音聊天的音频格式为amr; 3: native平台实现了语音的录制和播放,可以移 ...

  2. cocos creator麻将教程系列(二)—— 达达麻将的底层通讯express框架与socketio

    达达麻将网络通讯 目录 达达麻将网络通讯 要点: (1)express框架的基本写法 (2)socket.io的基本原理和使用; (3)creator阅读源码的必杀技巧; (4)一起来看达达麻将的游客 ...

  3. cocos creator麻将教程系列(七)—— 达达麻将打包与发布

    达达麻将打包与发布 达达麻将版图 打包注意事项 1:打包之前仔细学习creator的android 与h5的打包; 2: 达达麻将打包两个注意点: (1) 录音的代码; (2)微信的登陆代码; 3: ...

  4. cocos creator麻将教程系列(三)—— 达达麻将开房间流程

    达达麻将"开房" 目录 达达麻将"开房" 要点 (1)达达麻将版图回顾 (2)达达麻将游戏服务器注册到大厅,来配置负载 (3)创建房间客户端请求; (4)创建房 ...

  5. cocos creator麻将教程系列(四)—— 达达麻将客户端初始化流程

    达达麻将客户端初始化流程 达达麻将版图 客户端代码结构 1: scripts文件夹下: (1) 3rdparty: 第三方代码 socket-io; (2) Comonents: 游戏中挂到节点上的组 ...

  6. cocos creator麻将教程系列(六)—— 达达麻将的游戏流程

    达达麻将游戏流程 达达麻将版图 登陆到游戏服务器 1:客户端GameNetMgr.js, connectGameServer连接到游戏服务器,并发送"login"命令; var s ...

  7. cocos creator麻将教程系列(五)—— 达达麻将开房间

    达达麻将开房间 达达麻将版图 达达麻将大厅 1: 大厅挂载了Hall.js 2:  onLoad 代码: // use this for initializationonLoad: function ...

  8. 从零开始实现自己的Kalimba——Cocos Creator新手教程系列(一)使用瓦片图Tiledmap设计游戏地图

    瓦片图Tiledmap可能是很多2d游戏开发者的偏爱,本节就Cocos Creator如何使用瓦片图进行详细的讲解. Tiled地图编辑器的下载安装不再赘述.下面介绍如何使用地图编辑器. 创建新地图. ...

  9. cocos creator微信棋牌小游戏 幼麟棋牌服务端分析笔记

    新的项目需要做一个微信棋牌小游戏,网上搜了一圈相关的代码. 单就完整性来说,幼麟棋牌的开源代码比较完整(cocosCreator客户端.nodeJs服务端.数据库脚本) 实现了一款房卡麻将基本功能(热 ...

最新文章

  1. matlab中nchoosek函数的用法
  2. python读文件每一行、并把这行替换-python基础--文件操作实现全文或单行替换
  3. 在ASP.Net2.0中使用UrlRewritingNet实现链接重写(转)
  4. Linux 系统目录结构
  5. 计算机网络基础:Internet常用服务介绍​
  6. Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)【Dalston版】
  7. 将dll制作成控件_全国首例将“影视作品”制作成“网络图片集”方式侵权案宣判...
  8. (09)VHDL例化VHDL
  9. 荣耀v20、荣耀20Pro、mate20、Nova5Pro选哪个?
  10. 严格单调递增与非严格之间的转换
  11. 计算机半小时后关机代码,电脑自动关机代码
  12. 为什么使用MATLAB的imnoise函数添加高斯噪声时要将方差除以255^2
  13. 计算机无法安装蓝牙驱动,win10蓝牙驱动装不了怎么办_win10电脑蓝牙驱动无法安装处理方法-win7之家...
  14. 国标GB28181协议视频平台EasyGBS国标级联到上级宇视平台,不断切换在线和离线状态是什么原因?
  15. 微信h5使用audio不会自动播放
  16. java 假币问题_假币问题-题解(Java代码)
  17. 数学笔记10——拉格朗日中值定理
  18. [ooc-lang]一门冷门的面向对象编程的语言使用小结
  19. 硬盘坏了数据可以恢复吗?对症下药更有效
  20. 2016 我的年终小结:一直在路上

热门文章

  1. 学科基本结构理论-布鲁纳学习理论
  2. 应用宝认领应用签名_腾讯开放平台第三方应用签名参数sig的说明
  3. 前端 - bootstrap树形菜单
  4. Hbuider H5+App获取手机状态栏高度
  5. TB级倾斜摄影建模集群完美硬件配置方案
  6. Android深入源码分析理解Aidl整体调用流程(雷惊风)
  7. c语言fabs函数的返回值,fabs()函数
  8. 从本钢板B看低市盈率投资收益
  9. Composer下载以及安装
  10. 三菱fx3uplc恢复出厂设置_清除三菱FX系列PLC密码的三种方法