如何在Game Center多人游戏中获取玩家名称?

时间:2014-06-16 22:32:36

标签: ios objective-c

正如标题所说,我想知道如何展示本地玩家别名和其他GKplayers别名。我使用这个在互联网上找到的游戏中心经理https://github.com/nihalahmed/GameCenterManager。但是我只能找到一种显示本地玩家别名的方法。

- (NSString *)localPlayerDisplayName {
    if ([self isGameCenterAvailable] && [GKLocalPlayer localPlayer].authenticated) {
        if ([[GKLocalPlayer localPlayer] respondsToSelector:@selector(displayName)]) {
            return [GKLocalPlayer localPlayer].displayName;
        } else {
            return [GKLocalPlayer localPlayer].alias;
        }
    }

    return @"unknownPlayer";
}

怎么可能找到其他GKPlayers别名?

1 个答案:

答案 0 :(得分:1)

您需要向游戏中心询问基于其标识符(或朋友列表或其他各种项目)之类的玩家(或多个玩家)。从那里,您可以获得别名和其他信息,就像您为本地玩家所做的那样。

以下是Game Center文档中的骨架代码,例如:

- (void) loadPlayerData: (NSArray *) identifiers
{
    [GKPlayer loadPlayersForIdentifiers:identifiers withCompletionHandler:^(NSArray *players, NSError *error) {
        if (error != nil)
        {
            // Handle the error.
        }
        if (players != nil)
        {
            // Process the array of GKPlayer objects.
        }
     }];
}

如果您在开始创建玩家阵列时需要帮助,可以通过询问玩家的朋友列表,当前连接的玩家或其他各种方式来获得。