如何使用Google Play服务在一个应用程序/游戏中管理多个“迷你游戏”?

时间:2016-01-07 15:00:50

标签: android google-play-services google-play-games

我开发了一款也是游戏的应用程序,因此我决定使用在线多人游戏并将其注册到Google Play游戏服务。在开发了第一个迷你游戏后,一切都按预期工作,我没有遇到任何问题。在开发第二个迷你游戏时,我突然想知道如何才能让我的用户能够在特定的迷你游戏中玩多人游戏?

应用程序链接到游戏服务,然后向我提供我的清单文件中存在的APP_ID,如下所示:

<meta-data android:name="com.google.android.gms.games.APP_ID"
        android:value="@string/app_id" />

似乎有意义的是我可以创建多个游戏服务并将它们全部链接到我的应用程序。但是,我怎么能够在应用程序中处理多个APP_ID?当我使用GoogleApiClient时,它只是使用清单中的APP_ID而我无法指定特定的APP_ID游戏服务来启动并提供与Google Play游戏和Google +的连接:

mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN)
            .addApi(Games.API).addScope(Games.SCOPE_GAMES)
            .build();

在一个应用程序中处理多个游戏是否有最佳实践?

1 个答案:

答案 0 :(得分:2)

我现在发现您可以指定一个variant值,该值为int,值为1到1023.构建房间时,您可以将此变体设置为适当的int 1}}反映不同的游戏类型:

RoomConfig.Builder selectPlayersRoomConfigBuilder = makeBasicRoomConfigBuilder();
selectPlayersRoomConfigBuilder.addPlayersToInvite(invitees);
// specifies a specific game variant
selectPlayersRoomConfigBuilder.setVariant(gameType);
if (autoMatchCriteria != null) {
    selectPlayersRoomConfigBuilder.setAutoMatchCriteria(autoMatchCriteria);
}

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

Games.RealTimeMultiplayer.create(mGoogleApiClient, selectPlayersRoomConfigBuilder.build());

在我的游戏示例中,gameType是一个int,当用户选择他们想要播放的游戏时,会从之前的Activity设置,然后通过Intent传入。我已决定使用1作为第一种游戏类型,2作为第二种游戏类型等。