我正在測試一個遊戲中心遊戲,特別是當玩家臨時退出時(電話,背景等)會發生什麼情況我希望能夠暫停遊戲並在玩家重新連接時再次活躍起來。重新連接到超過兩名球員的GKMatch
在雙人遊戲中這很好地工作,因爲匹配:shouldReinvitePlayer功能導致玩家被重新邀請,但這是蘋果公司指定的,只能在雙人遊戲中工作。
在一個三人(或更多)的遊戲中,我正在appDelegate applicationWillEnterForeground中處理此操作,如下所示;
GKMatchRequest *comebackRequest = [[GKMatchRequest alloc] init];
comebackRequest.playersToInvite = [NSArray arrayWithObjects:[[[[KYTGame instance] players] objectAtIndex:1] peerId], [[[[KYTGame instance] players] objectAtIndex:2] peerId], nil];
comebackRequest.minPlayers = 3;
comebackRequest.maxPlayers = 3;
comebackRequest.playerGroup = [[[KYTGame instance] gameCategory] playerGroup];
[[GKMatchmaker sharedMatchmaker] addPlayersToMatch:[[KYTGame instance] match]
matchRequest:comebackRequest
completionHandler:^(NSError *error) {
NSLog(@"%sPlayers are %@", __PRETTY_FUNCTION__, [[KYTGame instance] match ].playerIDs);
}];
什麼情況是,現有的兩名球員「平」掉令人高興的是,當應用程序委託代碼被調用(在再次活過來的球員)的比賽是不是零,並沒有什麼在playedIDs數組,但完成處理程序似乎永遠不會被調用,並且「再次活躍」的玩家再也不會重新連接。
我還在'現場'玩家的調試日誌中看到一個特殊模式,表明進入後臺的玩家在兩次之間沒有任何「連接」的情況下,已經將狀態更改爲「斷開連接」。
所以......當GKMATCH被推入背景然後復活時,可以期待GKMATCH有意義。我如何重新連接?可能嗎?
從2012年9月份起,這個變化了嗎?看起來像其他應用程序(特別是我的)可以真正使用的功能。 – PWiggin 2013-04-13 00:27:08