房间匹配

最近更新时间:2020-09-30 15:29:03

本文档用于指导您如何通过房间匹配的方式为玩家加入房间。
房间匹配是指按照传入的参数搜索现存的房间,如果存在,则将玩家加入该房间;如果不存在,则为玩家创建并加入一个新房间。

说明:

房间匹配不支持自定义匹配规则。请参见 匹配相关接口

前提条件

操作步骤

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

1. 游戏配置

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

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",
};

const matchRoomPara = {
    playerInfo,
    maxPlayers: 5,
    roomType: "1",
};

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 请参见 matchRoom

room.matchRoom(matchRoomPara, event => {
    if (event.code !== 0) {
        console.log("匹配失败", event.code);
    }
});

6. Room 接收广播回调

广播回调 API 请参见 onJoinRoomonLeaveRoom

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