我无法使用自动匹配和GKMatchmakerViewController在两个播放器之间建立连接。
行为是这样的:
有谁能解决这个问题?
谢谢!
最佳答案
为了获得正确数量的玩家连接,请确保正确设置GKMatchRequest
。
在此示例中,我有一个仅在连接了两个玩家的情况下才能运行的游戏,因此我将最小和最大玩家数设置为2:
GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
request.minPlayers = 2;
request.maxPlayers = 2;
GKMatchmakerViewController* mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
mmvc.matchmakerDelegate = self;
然后,您记下的所有内容都会按预期工作。
编辑:
再次阅读问题后,还请确保您保留了通过以下方式提供给您的
GKMatch
对象:-(void) matchmakerViewController:(GKMatchmakerViewController*)viewController didFindMatch:(GKMatch*)match;
当然,您必须设置此match对象的委托:
//Done!
-(void) matchmakerViewController:(GKMatchmakerViewController*)viewController didFindMatch:(GKMatch*)match{
[self dismissModalViewController];
[self setCurrentMatch:match];
match.delegate = self;
if (!matchStarted && match.expectedPlayerCount == 0){
matchStarted = YES;
[delegate onMatchStart];
self.handlerVoice = [OnlineHandlerVoice handlerWithMatch:currentMatch];
}
}