在线匹配

最近更新时间:2020-09-28 11:40:13

本文档用于指导您通过发起玩家在线匹配的方式,为玩家创建并加入房间。在线匹配支持自定义匹配规则。请参见 匹配相关接口匹配规则集语法

前提条件

操作步骤

开发示例:玩家通过在线匹配的方式加入房间。

1. 创建匹配

(1)开发者需要登录 MGOBE 控制台,进入 在线匹配 页面,完成新建匹配。详情请参见 匹配配置
(2)完成后可在控制台的在线匹配页面,查看对应的匹配 code 。在后续调用客户端 API 时,您需将匹配 code 添加至玩家在线匹配的参数内。
create_lib

2. 调用客户端 API

(1)游戏配置

const gameInfo = {
    openId: 'xxxxxx',
    gameId: "xxxxxx",// 替换为控制台上的“游戏ID”
    secretKey: 'xxxxxx',// 替换为控制台上的“游戏ey”
};

const config = {
    url: 'xxx.wxlagame.com',// 替换为控制台上的“域名”
    reconnectMaxTimes: 5,
    reconnectInterval: 1000,
    resendInterval: 1000,
    resendTimeout: 10000,
};

(2)定义玩家在线匹配参数
玩家在线匹配参数包括玩家信息、匹配编码(matchCode)。

const playerInfo = {
    name: "Tom",
    customPlayerStatus: 1,
    customProfile: "https://xxx.com/icon.png",
    matchAttributes: [{
        name: "skill1",
        value: 99,
    }]
};

const matchPlayersPara = {
    playerInfo,
    matchCode: "play-xxx",//在MGOBE控制台完成匹配配置后,会生成匹配 code
};

(3)实例化 Room 对象

const room = new Room();

(4)初始化 Listener,并给房间添加监听

Listener.init(gameInfo, config, event => {
    if (event.code === MGOBE.ErrCode.EC_OK) {
        console.log("初始化成功");
        // 初始化后才能添加监听
        Listener.add(room);
    } else {
        console.log("初始化失败");
    }
});

(5)调用玩家在线匹配 API
玩家在线匹配 API 请参见 matchPlayers

room.matchPlayers(matchPlayersPara, event => {
    if (event.code === 0) {
        console.log("匹配成功", room.roomInfo);
    } else {
        console.log("匹配失败", event.code);
    }
});

(6)Room 接收广播回调
广播回调 API 请参见 onJoinRoomonLeaveRoom

// 广播:房间有新玩家加入
room.onJoinRoom = event => console.log("新玩家加入", event.data.joinPlayerId);
// 广播:房间有玩家退出
room.onLeaveRoom = event => console.log("玩家退出", event.data.leavePlayerId);
目录