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

这篇文章是官方整理的:

技术栈

客户端 引擎: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

目录说明

cocos creator麻将教程系列(九)—— 幼麟棋牌代码讲解_第1张图片

cocos creator麻将教程系列(九)—— 幼麟棋牌代码讲解_第2张图片

安装与部署

服务器安装与部署 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 下面的
天天麻将
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中加入以下代码
                     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  示例如下
cocos creator麻将教程系列(九)—— 幼麟棋牌代码讲解_第3张图片
 
 
 
 
 
 
 
 
   
交互 微信登陆和分享由AnysdkMgr.js发起,参看源码即可明白
微信登陆回调后,与微信平台的验证,在account_server中,appscret也由account_server保管,客户端不可见

语音

注:语音SDK是自已研发的,无需第三方
 
确保android目录下 proj.android/src/VoiceSDK存在
在AndroidManifest.xml添加以下权限
   
 
 
>>>>> 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,JS麻将)