Hallo Zusammen,
ich arbeite gerade einem Live Match Spiel für zwei Spieler über Game Center - wir sind also in der GKMatchmaker Welt.
Ich möchte auch nicht den MatchMakerViewController von Apple nutzen, sondern mein eigenes User Interface. Das funktioniert für Matches gegen einen zufälligen Gegner super.
Der Xcode Simulator ist ein Spieler. Mein iPhone mit Game Center Sandbox aktiviert ist der zweite Spieler. Natürlich sind beide mit unterschiedlichen AppleIDs im GameCenter angemeldet. Wie gesagt, das funktioniert
Ich möchte jedoch auch Einladungen abbilden und bekomme es einfach nicht hin. Ich habe jetzt auch echt schon viel am Code rumgebastelt und hoffe auf eure Hilfe.
Natürlich sind beide AppleIDs miteinander befreundet.
Alles anzeigen
Hier passiert eigentlich nichts schrecklich spannendes. Ich erstelle den GKMatchRequest und füge den Spieler den ich einladen möchte hinzu. Dann wird der GKMatchmaker angeschmissen. Außerdem installiere ich noch den seit iOS 8 neuen recipientResponseHandler.
Mein Problem ist - es wird keine Einladung versandt.
Nie!
Ich komme bis NSLog(@"found match for Invitation");
Aber wenn keine Einladung beim Freund ankommt, kann der die auch nicht annehmen und folglich wird der recipientResponseHandler nie ausgelöst.
Irgendwas mache ich falsch - nur was
Oder funktionieren Einladungen nicht mit dem Simulator zusammen, das random Matchmaking jedoch schon?
Vielen Dank im Voraus.
ich arbeite gerade einem Live Match Spiel für zwei Spieler über Game Center - wir sind also in der GKMatchmaker Welt.
Ich möchte auch nicht den MatchMakerViewController von Apple nutzen, sondern mein eigenes User Interface. Das funktioniert für Matches gegen einen zufälligen Gegner super.
Der Xcode Simulator ist ein Spieler. Mein iPhone mit Game Center Sandbox aktiviert ist der zweite Spieler. Natürlich sind beide mit unterschiedlichen AppleIDs im GameCenter angemeldet. Wie gesagt, das funktioniert
Ich möchte jedoch auch Einladungen abbilden und bekomme es einfach nicht hin. Ich habe jetzt auch echt schon viel am Code rumgebastelt und hoffe auf eure Hilfe.
Natürlich sind beide AppleIDs miteinander befreundet.
Quellcode
- - (void)challengeFriend:(GKPlayer*)friend withDelegate:(id<GCHelperDelegate>)theDelegate {
- NSLog(@"try to challenge friend: %@ %@", friend.playerID, friend.displayName);
- matchStarted = NO;
- self.match = nil;
- self.delegate = theDelegate;
- GKMatchRequest *request = [[GKMatchRequest alloc] init];
- request.minPlayers = 2;
- request.maxPlayers = 2;
- request.defaultNumberOfPlayers = 2;
- request.recipients = [[NSArray alloc] initWithObjects:friend, nil];
- request.inviteMessage = @"I invite you to play";
- [[GKMatchmaker sharedMatchmaker] findMatchForRequest:request withCompletionHandler:^(GKMatch* match, NSError *error) {
- // do the match making
- if (error) {
- NSLog(@"ERROR: Error makeMatch: %@", [error description] );
- } else if (match != nil) {
- NSLog(@"found match for Invitation");
- // Record the new match and set gchelper up as the delegate...
- self.match = match;
- self.match.delegate = self;
- }
- }];
- request.recipientResponseHandler = ^(GKPlayer *player, GKInviteRecipientResponse response){
- NSLog(@"GKInviteeResponse received");
- if (response == GKInviteeResponseAccepted) {
- NSLog(@"GKInviteRecipientResponse accepted");
- if ([(NSObject*)self.delegate respondsToSelector:@selector(foundMatch:)] ) {
- [self.delegate foundMatch:self.match];
- }else {
- NSLog(@"No delegate for foundMatch:");
- }
- } else {
- NSLog(@"GKInviteRecipientResponse: %ld", (long)response);
- if ([(NSObject*)self.delegate respondsToSelector:@selector(updateUIForPlayer:accepted:)]) {
- [self.delegate updateUIForPlayer:player.playerID accepted:(response == GKInviteeResponseAccepted)];
- }
- }
- };
- }
Mein Problem ist - es wird keine Einladung versandt.
Nie!
Ich komme bis NSLog(@"found match for Invitation");
Aber wenn keine Einladung beim Freund ankommt, kann der die auch nicht annehmen und folglich wird der recipientResponseHandler nie ausgelöst.
Irgendwas mache ich falsch - nur was
Oder funktionieren Einladungen nicht mit dem Simulator zusammen, das random Matchmaking jedoch schon?
Vielen Dank im Voraus.