onDisconnectedFromRoom()在受邀玩家离开游戏时调用

时间:2014-10-04 11:09:07

标签: android google-play-games

我与其他2位玩家(均直接邀请)创建了一个实时多人游戏。我是这样做的:

创建玩家选择意图

Intent intent = Games.RealTimeMultiplayer.getSelectOpponentsIntent(getApiClient(), 1, MAX_PLAYERS);
startActivityForResult(intent, REQ_GOOGLE_INVITE);

onActivityResult()执行此操作:

private void onPlayersInvited(Intent data) {
    // get the invitee list
    final ArrayList<String> invitees = data.getStringArrayListExtra(Games.EXTRA_PLAYER_IDS);

    Bundle autoMatchCriteria = RoomConfig.createAutoMatchCriteria(1, 5, 0);

    // create the activeRoom and specify a variant if appropriate
    RoomConfig.Builder roomConfigBuilder = makeBasicRoomConfigBuilder();
    roomConfigBuilder.addPlayersToInvite(invitees);
    roomConfigBuilder.setAutoMatchCriteria(autoMatchCriteria);
    RoomConfig roomConfig = roomConfigBuilder.build();
    Games.RealTimeMultiplayer.create(getApiClient(), roomConfig);

    // prevent screen from sleeping during handshake
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}


private RoomConfig.Builder makeBasicRoomConfigBuilder() {
    return RoomConfig.builder(this).setMessageReceivedListener(this).setRoomStatusUpdateListener(this).setSocketCommunicationEnabled(true)
            .setVariant(subcategory.getId().intValue());
}

我的游戏在所有3个设备上启动,但是当我在一个受邀设备上断开游戏时,然后在主机设备上调用onDisconnectedFromRoom(),所以我猜游戏会自动取消,这很难过,因为我&#39 ; d喜欢继续游戏,直到最小所需数量的玩家出现。

有没有办法防止这种情况?

2 个答案:

答案 0 :(得分:2)

在onDisconnectedFromRoom()回调中,您获得Room对象。您可以通过拨打

来查看有多少玩家留在房间里
int count = room.getParticipantIds().size();

如果玩家超过最小值,则继续游戏。

答案 1 :(得分:1)

通过设置AutomatchCryteria引起了奇怪的行为。我删除它,现在它表现良好