【问题标题】:how to sync data in multiplayer game(game-center ios)如何在多人游戏中同步数据(游戏中心 ios)
【发布时间】:2012-12-11 12:08:40
【问题描述】:

我一直在为 Game Center 开发游戏。

游戏说明:-

一个玩家是游戏的发起者,因为游戏有 5 个瓦片地图(只有一个瓦片地图是由任一玩家(发起者)随机选择的)。发起者会将选中的瓦片地图发送给第二个玩家,现在这个瓦片地图将在第二个玩家一侧绘制。(此时两个玩家都有相同的瓦片地图)

当我通过向玩家发送邀请开始游戏时,这可以正常工作。

但是当我通过 "automatch" 开始游戏时,我无法找到谁将成为发起者(谁将发送随机选择的瓦片地图)。

我通过这段代码创建了一个玩家发起者:

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;
}

}

如果“自动”中无法进行数据同步,请告诉我,如何禁用游戏中心视图控制器中的自动匹配(播放)按钮。

【问题讨论】:

    标签: iphone objective-c ios ipad game-center


    【解决方案1】:

    您可以通过按他们的 playerID 对两个玩家进行排序来选择发起者是谁,然后始终让排序数组中的第一个成为发起者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      相关资源
      最近更新 更多