我已经实现了游戏中心的功能,比如成就和排行榜,现在我正在努力应对挑战。我的印象是,我不需要添加任何额外的代码-如果我有成就或排行榜,玩家将能够向他们的朋友发送挑战。但现在,在iOS10中,你不再能够将玩家添加为好友--挑战通过iMessages来处理。问题是-我在GKViewController屏幕的任何地方都看不到这个功能。如果你选择了一个成绩/排行榜分数,你可以点击“挑战朋友”,但它只会提示你的朋友列表中已经有的球员,而不是你的联系人列表中的球员。苹果也弃用了GKChallengesViewController,所以我不知道该怎么做。
有人知道如何在iOS 10的游戏中心添加iMessage挑战赛功能吗?
更新:我已经看到这个特性存在于GKMatchmakerViewController中,但这似乎是针对多玩家类型的东西。我仍然不确定如何使用它来发送挑战。
发布于 2017-02-11 02:40:19
发出质询不会向发出质询的玩家显示用户界面;这是您需要自己实现的代码。
还有一些关于如何发布挑战和如何找到可以邀请的玩家的示例,例如:
- (void) challengePlayersToCompleteAchievement: (GKAchievement*) achievement
{
[achievement selectChallengeablePlayers:[GKLocalPlayer localPlayer].friends withCompletionHandler:^(NSArray *challengeablePlayerI, NSError *error) {
if (challengeablePlayers)
{
[self presentChallengeWithPreselectedPlayers: challengeablePlayers];
}
}];
}
...or:
- (void) challengeLesserMortalsForScore: (int64_t) playerScore inLeaderboard: (NSString*) leaderboard
{
GKLeaderboard *query = [[GKLeaderboard alloc] init];
query.leaderboardIdentifier = leaderboard;
query.playerScope = GKLeaderboardPlayerScopeFriendsOnly;
query.range = NSMakeRange(1,100);
[query loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error) {
NSPredicate *filter = [NSPredicate predicateWithFormat:@"value < %qi",playerScore];
NSArray *lesserScores = [scores filteredArrayUsingPredicate:filter];
[self presentChallengeWithPreselectedScores: lesserScores];
}];
}
从外观上看,你仍然只能邀请已经是游戏中心一部分的玩家,也就是说,联系人列表中没有任意的“联系人”(这是有道理的),但这只是一个假设。
https://stackoverflow.com/questions/41451444
复制相似问题