多人在线匹配

最近更新时间:2019-09-05 18:45:00

本文档用于指导开发者使用小游戏联机对战引擎 MGOBE 的创建匹配功能和客户端 API,实现通过多人在线匹配的方式为玩家创建并加入房间。

前提条件

操作步骤

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

1. 创建匹配

开发者需要在 MGOBE 控制台 配置匹配 ,完成后可在控制台的匹配配置页面查看对应的匹配 code 。在后续调用客户端 API 时,需要把匹配 code 添加进多人在线匹配的参数内。
create_lib

2. 调用客户端 API

(1)游戏配置

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

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

(2)定义多人在线匹配参数

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);