收藏
回答

官方帧同步中的控制引发的错误

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小游戏 Bug wx.getGameServerManager, wx.onTouchStart, wx.onTouchEnd, wx.onTouchMove, wx.onKeyUp, wx.onKeyDown 工具 8.0.56 2.24.7

使用wx.getGameServerManager的房间管理、帧同步、对局服务开发联机2人对战小游戏(没有私有的后端服务器,只有微信服务器),帧同步的频周期33ms。使用了wx.getGameServerManager, wx.onTouchStart, wx.onTouchEnd, wx.onTouchMove, wx.onKeyUp, wx.onKeyDown等API。

  1. 1 微信开发工具中,进行PC端真机调试,使用了wx.getGameServerManager, wx.onKeyUp, wx.onKeyDown等API。游戏(使用官方帧同步)是通过键盘控制的,键盘操作时会在控制台不断地出现很多相同的RangeError错误(见图片)。移动端真机和模拟移动端中没有这问题。

  1. 2 微信开发工具中,进行移动端真机调试,使用了wx.getGameServerManager, wx.onTouchStart, wx.onTouchEnd, wx.onTouchMove等API。游戏(使用官方帧同步)是通过虚拟摇杆和虚拟按键控制的,操作时(一般是连续操作0.5~1.5分钟内,有时几秒内)会在控制台出现3条“3006”错误{errMsg: "it's a large frame", errCode: 3006},这3条错误一般前后都会出现requestIdleCallback警告。但是我的游戏中,玩家只有2个人,上传的游戏帧也是很小的:json字符串{moveUp:false,moveDown:false,moveLeft:false,moveRight:false,fire:false,skill:false},甚至还简化为只发送true的json,例如{moveUp:true,skill:true}等。PC端和模拟移动端没有这个问题

回答关注问题邀请回答
收藏
登录 后发表内容