2012-12-11 108 views
0

我一直在为Game Center开发一款游戏。游戏的如何在多人游戏中同步数据(游戏中心ios)

描述: -

一个玩家是游戏的引发剂,因为游戏已经5平铺-MAP(只有一个瓦片地图是随机或者由播放器(引发剂)选择)。发起者将发送选定的瓷砖地图到第二个玩家,现在这个瓷砖地图将在第二个玩家一侧绘制(此时两个玩家都有相同的瓷砖地图)

这是工作正常,当我通过发送邀请开始游戏时顶层。

但是当我通过“自动匹配”开始游戏时,我无法找到谁将成为发起者(谁将发送随机选择的瓷砖地图)。

我已经通过这个代码做一个播放器启动程序:

isThisInvited_Player = YES; 
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_INVITATION_ACCEPTED object:nil]; 


- (void)authenticationChanged {  

    if ([GKLocalPlayer localPlayer].isAuthenticated && !userAuthenticated) { 
     userAuthenticated = TRUE; 

    [GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite) { 

     isThisInvited_Player = YES; 
     self.pendingInvite = acceptedInvite; 
     self.pendingPlayersToInvite = playersToInvite; 
     [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_INVITATION_ACCEPTED object:nil]; 

    }; 

} else if (![GKLocalPlayer localPlayer].isAuthenticated && userAuthenticated) { 
    userAuthenticated = FALSE; 
} 

} 

如果数据同步是不是在“自动匹配”的可能,那么请告诉我,我怎么可以禁用自动配对(播放)按钮在游戏 - 中心 - 视图 - 控制器。

回答

1

您可以通过按照playerID排序两位玩家来挑选发起者,然后始终将排序阵列中的第一个作为发起者。

+0

这是完美的解决方案...... –