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 |
目录说明
安装与部署
服务器安装与部署 | 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麻将教程系列(九)—— 幼麟棋牌代码讲解相关推荐
- cocos creator麻将教程系列(八)—— 达达麻将语音聊天源码分析
达达麻将语音聊天源码分析 达达麻将版图 语音聊天 1:语音聊天只支持Native平台,iOS与android; 2: 语音聊天的音频格式为amr; 3: native平台实现了语音的录制和播放,可以移 ...
- cocos creator麻将教程系列(二)—— 达达麻将的底层通讯express框架与socketio
达达麻将网络通讯 目录 达达麻将网络通讯 要点: (1)express框架的基本写法 (2)socket.io的基本原理和使用; (3)creator阅读源码的必杀技巧; (4)一起来看达达麻将的游客 ...
- cocos creator麻将教程系列(七)—— 达达麻将打包与发布
达达麻将打包与发布 达达麻将版图 打包注意事项 1:打包之前仔细学习creator的android 与h5的打包; 2: 达达麻将打包两个注意点: (1) 录音的代码; (2)微信的登陆代码; 3: ...
- cocos creator麻将教程系列(三)—— 达达麻将开房间流程
达达麻将"开房" 目录 达达麻将"开房" 要点 (1)达达麻将版图回顾 (2)达达麻将游戏服务器注册到大厅,来配置负载 (3)创建房间客户端请求; (4)创建房 ...
- cocos creator麻将教程系列(四)—— 达达麻将客户端初始化流程
达达麻将客户端初始化流程 达达麻将版图 客户端代码结构 1: scripts文件夹下: (1) 3rdparty: 第三方代码 socket-io; (2) Comonents: 游戏中挂到节点上的组 ...
- cocos creator麻将教程系列(六)—— 达达麻将的游戏流程
达达麻将游戏流程 达达麻将版图 登陆到游戏服务器 1:客户端GameNetMgr.js, connectGameServer连接到游戏服务器,并发送"login"命令; var s ...
- cocos creator麻将教程系列(五)—— 达达麻将开房间
达达麻将开房间 达达麻将版图 达达麻将大厅 1: 大厅挂载了Hall.js 2: onLoad 代码: // use this for initializationonLoad: function ...
- 从零开始实现自己的Kalimba——Cocos Creator新手教程系列(一)使用瓦片图Tiledmap设计游戏地图
瓦片图Tiledmap可能是很多2d游戏开发者的偏爱,本节就Cocos Creator如何使用瓦片图进行详细的讲解. Tiled地图编辑器的下载安装不再赘述.下面介绍如何使用地图编辑器. 创建新地图. ...
- cocos creator微信棋牌小游戏 幼麟棋牌服务端分析笔记
新的项目需要做一个微信棋牌小游戏,网上搜了一圈相关的代码. 单就完整性来说,幼麟棋牌的开源代码比较完整(cocosCreator客户端.nodeJs服务端.数据库脚本) 实现了一款房卡麻将基本功能(热 ...
最新文章
- matlab中nchoosek函数的用法
- python读文件每一行、并把这行替换-python基础--文件操作实现全文或单行替换
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写(转)
- Linux 系统目录结构
- 计算机网络基础:Internet常用服务介绍​
- Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)【Dalston版】
- 将dll制作成控件_全国首例将“影视作品”制作成“网络图片集”方式侵权案宣判...
- (09)VHDL例化VHDL
- 荣耀v20、荣耀20Pro、mate20、Nova5Pro选哪个?
- 严格单调递增与非严格之间的转换
- 计算机半小时后关机代码,电脑自动关机代码
- 为什么使用MATLAB的imnoise函数添加高斯噪声时要将方差除以255^2
- 计算机无法安装蓝牙驱动,win10蓝牙驱动装不了怎么办_win10电脑蓝牙驱动无法安装处理方法-win7之家...
- 国标GB28181协议视频平台EasyGBS国标级联到上级宇视平台,不断切换在线和离线状态是什么原因?
- 微信h5使用audio不会自动播放
- java 假币问题_假币问题-题解(Java代码)
- 数学笔记10——拉格朗日中值定理
- [ooc-lang]一门冷门的面向对象编程的语言使用小结
- 硬盘坏了数据可以恢复吗?对症下药更有效
- 2016 我的年终小结:一直在路上