Game Center 主机

3

我目前正在创建一个游戏中心游戏,并使用可用的点对点功能。然而,我想选择其中一个玩家(2个玩家)作为主机,以确保同步。

从可用的玩家中选择一个主机(甚至是随机的)并确保其他设备知道选择了哪个主机是最好的方法?

2个回答

0

已经发布了答案,这里还有样例代码来完成那件事

NSString *uid = [[UIDevice currentDevice] uniqueIdentifier];
CoinTossID = [uid hash];

现在在委托函数中

- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID
    {
        NSMutableArray *ReceivedArray = [[NSMutableArray alloc] init];
        ReceivedArray = [NSKeyedUnarchiver unarchiveObjectWithData:data];
        int flag = [[ReceivedArray objectAtIndex:0] intValue];
        [ReceivedArray removeObjectAtIndex:0];

        int CoinValue = [ReceivedCoinTossID intValue];
        if(CoinValue > CoinTossID)
        {
           isPlayer1 = YES;
        }
        else
        {
              isPlayer1 = NO;
        }
    }

谢谢,使用设备ID也应该可以。但是请注意,[[UIDevice currentDevice] uniqueIdentifier]在iOS 5中已经被弃用。也许使用[GKLocalPlayer localPlayer].playerID会更好。 - user1007649

0

这篇是一个非常好的、简单的教程,其中包含代码演示如何实现这一点。他们随机选择其中一个节点作为主机。希望能对你有所帮助!


谢谢,随机数技巧应该可以解决问题:)。我想我一直沉浸在寻找类似于常量和持久的playerID字符串,然后进行比较的过程中,甚至没有接近思考这个。再次感谢。 - user1007649

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接