邀请加入房间

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

本文档用于指导开发者调用小游戏联机对战引擎 MGOBE 客户端 API,实现通过玩家邀请的方式加入指定 ID 房间的场景。

前提条件

操作步骤

开发示例:通过邀请方式加入指定 ID 的房间。

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

const createRoomPara = {
    roomName: "房间名",
    maxPlayers: 4,
    roomType: "2V2",
    isPrivate: false,
    customProperties: "WAIT",
    playerInfo,
};

//实例化Room对象
const room = new Room();

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

3. 创建房间

创建房间 API 请参见 createRoom

room.createRoom(createRoomPara, event => console.log(event));

4. 通过 room 实例处理广播回调

广播回调 API 请参见 onJoinRoomonLeaveRoom

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

5. 调用获取房间信息接口,获取当前玩家房间 ID

//2)调用获取房间信息接口,获取当前玩家房间ID
const getRoomByRoomIdPara2 = {
    roomId: "",
};
MGOBE.Room.getRoomByRoomId(getRoomByRoomIdPara2, event => console.log(event));

6. 邀请

调用微信/QQ 小游戏原生接口实现“生成邀请链接”和“分享”。

7. 玩家加入指定 ID 的房间

其他玩家通过邀请链接获得房间 ID 后,通过下面的步骤加入房间:

(1)初始化 SDK
如果玩家进入房间时,尚未初始化 SDK,则需要按上述指引进行初始化和实例化。

(2)加入指定 ID 的房间
加入房间 API 请参见 joinRoom

room.initRoom({ id: "xxx" });
room.joinRoom(joinRoomPara, event => console.log(event));