-(void)startMatchMakingWithDelegate:(id)_delegate {
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.defaultNumberOfPlayers = 2;
request.minPlayers = 2;
request.maxPlayers = 2;
GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc]initWithMatchRequest:request];
mmvc.matchmakerDelegate = _delegate;
[gameViewController presentViewController:mmvc animated:YES completion:nil];
}
这将打开匹配视图。在此视图中,有一个用于邀请好友参加比赛的按钮,用于打开邀请菜单。
是否可以在默认情况下已打开邀请菜单的情况下打开此匹配视图?
作为上下文,我的游戏有"排名比赛"和"友谊赛"。排名赛会花费您的积分。如果你与随机玩家对战,那么它算作排名,如果你与朋友对战,这是一场友谊赛。我想要两个按钮,一个标记为"排名",另一个标记为"友好"。这就是为什么我想要一种默认打开带有朋友邀请视图的匹配界面的方法 - 这样我就可以将其用于"友好"按钮。
您无法进入屏幕直接邀请朋友。一种解决方法是使用游戏中心的"挑战"朋友功能进行友谊赛。这是一个很好的教程。另一种选择是在打开匹配屏幕之前显示一个弹出窗口,让用户了解友谊赛和排名赛的规则。将用户分配到匹配项后,您必须检查匹配对象。如果用户在邀请朋友后玩游戏,则 match.participants 数组将在 index:1 处有一个条目,并且该参与者尚未玩回合(可以使用 lastTurnDate 进行检查)。
if([[match.participants objectAtIndex:1] playerID] && [[match.participants objectAtIndex:1] lastTurnDate])
如果没有,用户将与随机玩家进行排名比赛。