2017-03-29 4 views
0

Meine Anwendung verfügt über einen Mehrspieler-Modus, und ich bin mit dem folgenden Code ein Spieler zu finden:IOS: Game Center passend sehr langsam

[GKMatch ] GKMatchRequest *request = [[GKMatchRequest alloc] init]; 
request.minPlayers = 2; 
request.maxPlayers = 4; 

[[GKMatchmaker sharedMatchmaker] findMatchForRequest:request withCompletionHandler:^(GKMatch *match, NSError *error) { 

    if (error) 
    { 
     // Process the error. 
     NSLog(@"Error Match Process: %@", error); 
    } 
    else if (match != nil) 
    { 
     DuelModeController* duelModeController = (DuelModeController*)viewController; 
     [duelModeController updateSearchingMessageWith:@"  Connecting Game..."]; 

    } 
}]; 

Der obige Code funktioniert. Das Problem ist, dass es sehr langsam ist, einen Spieler zu finden, bis zu 12 bis 15 Sekunden. Um es zu testen, benutze ich ein iPhone und iPad mit zwei verschiedenen Game Center Accounts, beide haben IOS 10.2.

Würdest du solche Situation getroffen und wie hast du sie angesprochen?

Danke

Antwort

0

Fixed it! Mein App-Duell-Modus beschäftigt sich mit zwei Spielern. Wenn ich den Beispielcode von Apple nehme, kopiere ich aber die Min- und Max-Anzahl der Spieler. Min wurde auf 2 gesetzt, aber Max wurde auf 4 gesetzt.

Sobald ich die maximale Anzahl der Spieler auf 2 gesetzt habe, findet eine Übereinstimmung statt 2-3 Sekunden statt 12 bis 15 Sekunden. Meine Theorie ist, dass das Spielzentrum darauf gewartet haben könnte, einen dritten und vierten Spieler zu identifizieren, da es nicht finden kann, dass es Erfolg nach 12-15 Sekunden zurückgibt.

Lektion gelernt: Wenn Sie die Anzahl der Spieler im GKMatch definieren, geben Sie nur die gewünschten Spielerzahlen an, nicht mehr.

Stephane