最近用游戏服务器引擎Matchvs开发了一款游戏,发现他们家的API还是很丰富的,只是在使用的过程中发现需要监听的回调有些多,写起来很麻烦,就把回调封装了一些,记录下来,以后再其他项目中使用,同时分享给大家。

封装了房间内的玩家变动接口。

封装了包括 joinRoomResponse, joinRoomNotify,leaveRoomResponse,leaveRoomNotify,kickPlayerResponse,kickPlayerNotify

新封装的接口名字叫做roomUserInfoListChangeNotify

这段代码是在matchvs官网的 creator-demo的基础上面写的。 把所有的回调接口都封装到一个类中使用。

/*** 房间内玩家变化接口* @param data 进入房间的数据* @param action 动作类型 例如 加入  退出* @param userID 执行动作的玩家* @param ownerID 房间的房主ID*/
MatchvsDemoResponse.prototype.roomUserInfoListChangeNotify = function (data,action,player,ownerID) {switch (action) {case "joinRoom":userList = data;userList.add(player);break;case "joinRoomNotify":userList.add(player);break;case "leaveRoom":if (player.userID === userList[i].userID) {userList.length = 0;break;}for(var i = 0; i < userList.length;i++) {if (userList[i].userID === player.userID) {userList.splice(i,1);}}break;}userList.sort(MatchvsDemoResponse.prototype.sortNumber);for(var i = 0; i < userList.length;i++) {if (ownerID === userList[i].userID) {MatchvsDemoResponse.prototype.swapArray(userList,i,0);}}MatchvsDemoResponse.prototype.sendEventToUI(msg.MATCHVS_NETWORK_STATE_NOTIFY,{userList:userList,type:msg.MATCHVS_NETWORK_STATE_NOTIFY});};

roomUserInfoListChangeNotify 其中引用的方法。

/*** 全局发送消息* @param action* @param data*/
MatchvsDemoResponse.prototype.sendEventToUI = function (action,data) {let event = new cc.Event(action,true);event["data"] = data;cc.systemEvent.dispatchEvent(event);
};
/*** 交换位置,把房主放到第一位* @param arr* @param index1* @param index2* @returns {*}*/
MatchvsDemoResponse.prototype.swapArray = function(arr, index1, index2) {arr[index1] = arr.splice(index2, 1, arr[index1])[0];return arr;
},
/*** 根据ID排序* @param obj1* @param obj2* @returns {number}*/
MatchvsDemoResponse.prototype.sortNumber = function(obj1,obj2) {var userID1 = obj1.userID;var userID2 = obj2.userID;if (userID1 < userID2) {return -1;} else if (userID1 > userID2) {return 1;} else {return 0;}
};

下面用代码告诉大家怎么调用

/*** 进入房间回调* @param status* @param userInfoList* @param roomInfo*/
MatchvsDemoResponse.prototype.joinRoomResponse = function (status, userInfoList, roomInfo) {if (status === 200) {console.log("进入房间成功");userInfoList.roomID = roomInfo.roomID;var player ={userID:GLB.userID,userName: GLB.name};MatchvsDemoResponse.prototype.roomUserInfoListChangeNotify(userInfoList,"joinRoom",player,roomInfo.owner);} else {console.log("进入房间失败"+status);}
};

然后在需要使用的地方监听 MATCHVS_NETWORK_STATE_NOTIFY即可。

分享一个使用Matchvs很实用的小技巧相关推荐

  1. 安卓手机卡顿怎么解决_手机卡顿?分享一个解决安卓手机卡顿的小技巧

    用安卓手机的小伙伴们都会发现一个现象,几乎所有的安卓手机用久了都会卡,哪怕是到了今天,安卓的手机运存已经达到了惊人的12GB,当后台运行的程序过多的时候还是惠有一丝丝的卡顿,这是为什么呢? 其实其归根 ...

  2. html制作nba网页,NBA篮球_实用电脑小技巧:通俗解答html 自己动手建一个非常简单的网页_沪江英语...

    沪江小编:对于很多人来说,电脑应该算是使用频率最高的工具了,可是你真的会用电脑么?实用电脑小技巧,用最简单明了的方式给你无比有趣的电脑使用新体验. html是什么,什么是html通俗解答: 通俗的讲h ...

  3. 教师节html源码,教师节_实用电脑小技巧:通俗解答html 自己动手建一个非常简单的网页_沪江英语...

    沪江小编:对于很多人来说,电脑应该算是使用频率最高的工具了,可是你真的会用电脑么?实用电脑小技巧,用最简单明了的方式给你无比有趣的电脑使用新体验. html是什么,什么是html通俗解答: 通俗的讲h ...

  4. 分享一个python采集中国福利彩票的小代码

    分享一个python采集中国福利彩票的小代码 分享一个python采集中国福利彩票的小代码 能采集双色球,七乐彩,3D彩票任意一段时间的开奖号码,根据需求取消请求头注释,就能采集数据.(初学者请勿评价 ...

  5. 25个实用编程小技巧

    点击上方"朱小厮的博客",选择"设为星标" 回复"1024"获取独家整理的学习资料 如果每个程序开发人员都只是周而复始地写代码,想必编程的工 ...

  6. 好几张图片合成一个PDF,不能错过的小技巧!

    图片可以说是我们日常生活中就经常接触的文件啦,我们只要拥有摄像设备,在很多不同场景下都可以实现拍照自由.可是随着我们的图片文件的增多,我们会更多使用一些方法来更好保存这些比较珍贵的图像.比较常用的有把 ...

  7. Python五种实用的小技巧

    本文经"机器之心"授权,禁止二次转载. 作者:Peter Nistru 机器之心编译 参与:思 最开始学 Python 时,如果我能掌握这些方法,那么代码看起来会更加优美. 在本文 ...

  8. 工作中这些实用的小技巧,90%的程序员不知道

    工作中这些实用的小技巧,90%的程序员不知道 Linux 有些Linux命令我们是经常用的,但是这些命令有的特别长(如进入层级特别深的项目部署目录),这时就可以为这些命令定义一个别名 系统级别定义的别 ...

  9. Excel文件 实用操作小技巧

    Excel文件实用 操作小技巧 目录 1.为Excel文件 添加打开密码  审阅  - 保护工作簿 - 保护结构和窗口-输入密码点击确定 2.为Excel文件 添加作者信息 在Exce文件 图标上右键 ...

最新文章

  1. 物联网处理器定义混沌不明,市场尚未成熟
  2. SigmaStar SSD202 openwrt 系统下ubi根文件系统挂载过程
  3. 单例模式创建的两种方法
  4. 怎么删除计算机管理员用户密码,小编手把手教你Win10系统如何删除管理员账户密码...
  5. flask redis_在Flask应用程序中将Redis队列用于异步任务
  6. Springboot 多模块项目创建与配置
  7. ERP : 服装行业解决方案
  8. 动态规划之详细分析0-1背包问题
  9. 全面解析抖音直播各类玩法;新人也能快速直播。
  10. 给大家推荐几个程序员必备网站
  11. 1.js基础01-计算机基础
  12. JavaScript实现鼠标点击监听---弹出社会主义核心价值观(面向对象小练习)
  13. stata 均值和标准差
  14. Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Could not retrie
  15. iOS - 手动下架的应用后快速恢复上架
  16. s12xep100 bootloader设计要点总结
  17. 数组子序列累加和求余数之后的最大值问题详解
  18. python 乘法运算定律_乘法运算定律专项练习题整理
  19. 基于PHP+MySQL的学生信息管理系统
  20. URP下Alpha从Gamma空间到Linner空间转换(二)——多Alpha贴图叠加

热门文章

  1. 微信小游戏本地解析二维码
  2. Linux服务器操作数据库
  3. 基于机器视觉的图像处理缺陷检测方法论文学习
  4. 华创期货:成功的期货交易原则可有效避免亏损
  5. Redis Cluster 集群详解
  6. open/close函数的使用
  7. 百度地图,自动获取定位,拖拽获取地点,模糊查询获取当前位置
  8. 基于多种算法实现鸢尾花聚类
  9. Zabbix通过XCC监控联想服务器状态
  10. 女生学习软件测试怎么样?