2012-12-11 139 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

這是完美的解決方案...... –