首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google Play服务中邀请好友

在Google Play服务中邀请好友
EN

Stack Overflow用户
提问于 2017-02-24 06:48:57
回答 2查看 217关注 0票数 0

我正在用objective-c创建一个游戏应用程序,它使用Google Play游戏服务来实现实时多人游戏功能。我遵循https://developers.google.com/games/services/ios/turnbasedMultiplayer上的文档。在我的应用程序中,有两个选项:自动匹配和邀请匹配。自动匹配功能工作正常。但是邀请比赛不是。为此,我遵循以下代码

代码语言:javascript
复制
- (int)minPlayersForPlayerPickerLauncher {
    return 1;
}

- (int)maxPlayersForPlayerPickerLauncher {
    return 2;
}
- (IBAction)inviteFriendsWasPressed:(id)sender
{

    // This can be a 2-4 player game
    [GPGLauncherController sharedInstance].playerPickerLauncherDelegate = self;
    // This assumes your class has been declared a GPGPlayerPickerLauncherDelegate
    [[GPGLauncherController sharedInstance] presentPlayerPicker];
}

单击此按钮后,操作跟随屏幕为打开See here

之后,当我在文本字段中输入emailId时,不会执行任何操作来搜索特定用户。

请帮帮我

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-02-24 07:18:39

不幸的是,玩家选择不再起作用,因为Google+不再集成到游戏服务:https://android-developers.googleblog.com/2016/12/games-authentication-adopting-google.html

票数 0
EN

Stack Overflow用户

发布于 2017-02-24 16:38:10

代码语言:javascript
复制
// request code for the "select players" UI
// can be any number as long as it's unique
final static int RC_SELECT_PLAYERS = 10000;

// launch the player selection screen
// minimum: 1 other player; maximum: 3 other players
Intent intent = Games.RealTimeMultiplayer.getSelectOpponentsIntent(mGoogleApiClient, 1, 3);
startActivityForResult(intent, RC_SELECT_PLAYERS);

    @Override
public void onActivityResult(int request, int response, Intent data) {
    if (request == RC_SELECT_PLAYERS) {
        if (response != Activity.RESULT_OK) {
            // user canceled
            return;
        }

        // get the invitee list
        Bundle extras = data.getExtras();
        final ArrayList<String> invitees =
            data.getStringArrayListExtra(Games.EXTRA_PLAYER_IDS);

        // get auto-match criteria
        Bundle autoMatchCriteria = null;
        int minAutoMatchPlayers =
            data.getIntExtra(Multiplayer.EXTRA_MIN_AUTOMATCH_PLAYERS, 0);
        int maxAutoMatchPlayers =
            data.getIntExtra(Multiplayer.EXTRA_MAX_AUTOMATCH_PLAYERS, 0);

        if (minAutoMatchPlayers > 0) {
            autoMatchCriteria = RoomConfig.createAutoMatchCriteria(
                    minAutoMatchPlayers, maxAutoMatchPlayers, 0);
        } else {
            autoMatchCriteria = null;
        }

        // create the room and specify a variant if appropriate
        RoomConfig.Builder roomConfigBuilder = makeBasicRoomConfigBuilder();
        roomConfigBuilder.addPlayersToInvite(invitees);
        if (autoMatchCriteria != null) {
            roomConfigBuilder.setAutoMatchCriteria(autoMatchCriteria);
        }
        RoomConfig roomConfig = roomConfigBuilder.build();
        Games.RealTimeMultiplayer.create(mGoogleApiClient, roomConfig);

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

// create a RoomConfigBuilder that's appropriate for your implementation
private RoomConfig.Builder makeBasicRoomConfigBuilder() {
    return RoomConfig.builder(this)
        .setMessageReceivedListener(this)
        .setRoomStatusUpdateListener(this);
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42427673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档