2017-01-03 25 views
16

Zaimplementowałem funkcje Game Center, takie jak osiągnięcia i tabele wyników, a teraz pracuję nad wyzwaniami. Miałem wrażenie, że nie muszę dodawać żadnego dodatkowego kodu - gdybym miał osiągnięcia lub tablice wyników, gracze mogliby wysyłać wyzwania swoim znajomym. Ale teraz, w iOS10, nie masz już możliwości dodawania graczy jako przyjaciół - wyzwania są obsługiwane przez iMessages. Problem polega na tym, że nie widzę tej funkcji nigdzie na ekranie GKViewController. Jeśli wybierzesz wynik osiągnięcia/leaaderboard, możesz wybrać opcję "Rzuć wyzwanie znajomym", ale sugeruje to tylko graczy, których masz już na liście znajomych, a nie na liście kontaktów. Firma Apple wycofała także GKChallengesViewController, więc nie jestem pewien, jak to zrobić.Wyzwania w Game Center w iOS 10

Czy ktoś wie, jak dodać funkcję Wyzwania iMessage do Game Center w systemie iOS 10?

Aktualizacja: Widziałem, że ta funkcja mieszka w GKMatchmakerViewController, ale to wydaje się być dla typu multiplayer rzeczy. Nadal nie wiem, jak to wykorzystać, aby wysyłać wyzwania.

+0

wszystkie działające funkcje, które można znaleźć tutaj. https://developer.apple.com/reference/gamekit – John

Odpowiedz

0

Z Apple Docs:

emisyjnym wyzwanie nie wyświetla interfejs użytkownika do odtwarzacza wydającego wyzwanie; to kod, który należy wprowadzić samemu.

Istnieje również kilka przykładów, w jaki sposób wydać wyzwania i jak znaleźć można zaprosić graczy, takich jak:

- (void) challengePlayersToCompleteAchievement: (GKAchievement*) achievement 
{ 
    [achievement selectChallengeablePlayers:[GKLocalPlayer localPlayer].friends withCompletionHandler:^(NSArray *challengeablePlayerI, NSError *error) { 
     if (challengeablePlayers) 
     { 
      [self presentChallengeWithPreselectedPlayers: challengeablePlayers]; 
     } 
    }]; 
} 

... albo:

- (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]; 
    }]; 
} 

przez wygląda na to, że nadal można zapraszać tylko graczy, którzy są już częścią centrum gier, tj. nie ma arbitralnych "kontaktów" z listy kontaktów (co ma sens), ale to tylko założenie.

+0

Dzięki za wpis. Miałem założenie z wideo WWDC 2016, że wyzwania mogą być wysyłane za pośrednictwem listy kontaktów, a nie listy znajomych w Game Center, do której nie można już dodawać. – claassenApps

Powiązane problemy