Czy GameKit pozwala zaprosić konkretnego znajomego Game Center na mecz, programowo, tzn. Bez prezentacji GC ViewController? Poniższa dokumentacja handleInviteFromGameCenter zdaje się sugerować, że można wypełnić GKMatchRequest.playersToInvite i używać go z [GKTurnBasedMatch findMatchForRequest]:Zapraszanie programisty gry Game Center na mecz programowo
Gdy delegat otrzyma tę wiadomość, aplikacja powinna utworzyć nowy obiekt GKMatchRequest i przypisania parametru playersToInvite do właściwości playersToInvite żądania dopasowania. Następnie twoja aplikacja może wywołać metodę klasy GKTurnBasedMatch findMatchForRequest: withCompletionHandler: aby znaleźć dopasowanie programowo lub może użyć żądania do utworzenia nowego kontrolera GKTurnBasedMatchmakerView, aby pokazać interfejs użytkownika odtwarzaczowi.
Ale jestem stwierdzenia, że kiedy findMatchForRequest nazywa mój blok zakończenia meczu z zaludnionym, identyfikator GameCenter zdałem do niego nie jest ustawiony jako 2 gracz. Zamiast tego jest pusty i status jest "dopasowany". I dlatego, gdy wołam endTurnWithNextParticipant, to się uda, ale zaproszenie nie zostanie odebrane na moim drugim urządzeniu. Ilustruje to, co robię:
GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
request.minPlayers = 2;
request.maxPlayers = 2;
request.playersToInvite = [NSArray arrayWithObjects: otherPlayerGCID,nil ];
[GKTurnBasedMatch findMatchForRequest:request
withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error)
{
if (error)
NSLog(@"returned from fimdmatch but with error");
else if (match != nil) {
NSLog(@"match returned success and match populated");
NSArray* otherPlayers = [match participants];
if (otherPlayers.count>1) {
NSData* placeholder = [@"no data" dataUsingEncoding:NSUTF8StringEncoding];
[match endTurnWithNextParticipant:[otherPlayers objectAtIndex:1]
matchData:placeholder
completionHandler:^(NSError *error)
{
if (error)
NSLog(@"returned from END TURN but with error");
else
NSLog(@"returned from END TURN successfully");
}];
}
}
else
System::log("match returned success but match NOT populated");
}];
I jak osoba, która wydaje się mieć podobny problem tutaj Game Center inviting friends progammatically, jeśli wstawić połączenia do kontrolera widoku, w moim przypadku GKTurnBasedMatchmakerViewController, wszystko wydaje się działać.
Dzięki.
AKTUALIZACJA: ja widziałem w prezentacji jabłko programisty na turowej GC, wzmianki o czymś w stylu: „Jeśli chcesz, aby zaprosić znajomego GC, pytamy, że można przejść przez kontrolera widoku GC
.Każdy wgląd doceniona ponownie Dzięki
Czy to nadal działa w iOS9? Właśnie zadałem podobne pytanie: http://stackoverflow.com/questions/36728503/gkmatchmaker-findmatchforrequest-invite-never-received – mark