麻将开发架构
2018-07-27 本文已影响24人
SpinachC
自己没有开发过一整套的游戏APP之类的。所以在看源码的时候云里雾里,还是要把看的东西全部写出来,然后按照自己的想法在去敲一遍代码。
App Start
- 初始化
- 用户管理模块
- 回放模块
- http模块
- net模块(socket)
- game net模块
- until模块
- anysdk模块
- audio模块
- voice模块
- load本地的版本的文件,然后加载服务器的版本做对比,如果不一样就让用户更新,一样的话就进loading界面
LoadingLogic
- 用cc.loader.onProgress来计算load进度,使用update来提示用户load百分比
- cc.loader.loadResAll 加载完成之后, 跳转login界面
Login
- 如果没有初始化,也就是说直接进入的这个场景,需要跳转回loading界面
- 播放音乐
- 如果是ios的话,就显示微信登录button(这里直接实现的是游客登录)
- 用户管理模块 guest:把account, ip, 服务器自己写的一个密码制作一个md5作为sign传回客户端, 还有大厅的端口号
- 用户管理模块 login:读取用户信息, 查看用户是否在房间, 是的话查询房间信息是否存在,不存在就清除用户表里的房间信息,存在就返回
- 客户端判断用户信息是否存在,存在就直接去hall
Hall
- 初始化界面(用户信息, 通知(走马灯, 利用update来移动x坐标))
- 创建游戏
- CreateRoom create_private_room: 获取用户信息,是否存在房间里
- 没有存在就去create房间, 之后enter房间,判断房间是否在run(只是验证了是否sign了)
- create socket,发送event login, 获取房间信息(每个位置的信息), 然后通知房间的其他人(把login用户的data发送出去),发送login_finish事件通知客户端跳入game界面
- 客户端接收信息之后dispatchEvent(冒泡)
- 进入房间
- enter_private_room
- 返回房间
- 跳转game界面
MJ Game
。。。正在看