开发接入相关问题

最近更新时间:2020-04-23 14:25:47

PlayerId 和 OpenId 是什么?

  • OpenId 指开发者传入的 ID,您可以前往小游戏平台直接获取,也可由开发者自行生成。
  • PlayerId 指 MGOBE 后台分配给每个玩家的 ID。OpenId 与 PlayerId 二者是唯一对应的。使用相同的 OpenId 初始化获取的 PlayerId 相同。

微信开发者工具是否限制文件上传大小?

限制的,代码包总大小不超过8M,单个分包不能超过4M,建议分包加载。详情请参见 微信官方文档

小组内的其他玩家如何监听匹配结果?

小组内的其他玩家可通过监听 onMatch 接口获得匹配结果;监听 onCancelMatch 接口获得取消匹配状态。

MGOBE 支持 UDP 吗? 如何在游戏开发中使用 UDP?

  • MGOBE 支持 TCP 和 UDP 协议,默认 TCP,需要开通白名单使用 UDP。
  • 但小游戏的发布平台本身对于协议有限制,目前只有微信小游戏支持 UDP,其他平台例如 QQ 小游戏和百度小游戏不支持 UDP。

在开发环境如何去掉 onRecvFrame 接口的日志打印?

您可以在开发环境输入MGOBE.DebuggerLog["exclude"]=["onRecvFrame"]取消接口的日志打印。

机器人的位置如何实现状态同步?

状态同步的逻辑均在服务端,服务端会不断下发每个玩家的状态。每个机器人的状态也由服务端控制,不需要玩家触发,同时不需要玩家上传机器人的状态。

使用帧同步的游戏,操作杆的状态在客户端如何下发?

  • 建议在固定操作时发帧,玩家 A 操作摇杆,就发一条帧消息,告知每个客户端该玩家方向已改变。客户端获取这个帧广播后,修改玩家 A 的方向。但是操作的频率会很高,可能导致发帧率很高。
  • 建议在操作摇杆时,通过一定的时间间隔或者方向变化伐值处理发帧。

当房间中无人时会自动销毁吗?是否需要某个玩家调用 dismiss?

控制台可以设置当房间没有玩家时,x秒后解散房间;玩家全部掉线后,x秒后解散房间。如果没有设置,则按照控制台默认值自动解散房间。当前默认值是12小时。

从官网下载的项目源码导入到 Laya,为何不能正常显示或者初始化失败?

从官网下载的项目源码导入到开发工具后。

  1. 请先修改 base.Ts 里 login() 函数的 gameID 和 secretKey 参数。(前往控制台获取 gameID 和 secretKey)
  2. server 暂时可以不填写。

cocosCreate 打包 Android 端显示90006报错,需要证书如何处理?

  • 下载安装证书。详情请参考 文档
  • 下载 cer 文件,cc.url.raw("resources/***.cer") 作为 cacertNativeUrl。

SDK 能否实现房间外的内容发送(类似好友聊天)?

目前只支持房间内的消息发送。

断线后,如何获取对方的状态呢?

  1. socket 断线后,room.onUpdate 将会回调,room.networkState 可以获取本地连接状态。
  2. 对方如果在线,则收到 onChangePlayerNetworkState 广播,里面包含掉线玩家信息。

matchgroup 需要传入 playerID,如何获得 playerID?matchgroup 接口如何使用?

matchgroup 需要传组队的玩家 ID。具体步骤如下:

  1. 先通过邀请好友进入一个房间即可获取玩家的 ID。
  2. 获取玩家 ID 后,将用于组队的房间解散,即可调用 matchgroup 并发起匹配。
  3. 匹配成功后,小组成员会进入同一个对战房间里的同一个队伍。

小程序和小游戏在使用 MGOBE SDK 时需要区分吗?

  • 直接导入 SDK 即可,不用区分小游戏还是小程序,主要是导入 SDK 方式存在区别。小程序导入 SDK 使用两种方法:
    const MGOBE = require("../MGOBE/MGOBE.js");
    import * as MGOBE from "../MGOBE/MGOBE.js";
  • 小程序里暂不支持 import "./MGOBE.js" 这种方式。
目录