2017-01-03 2 views
16

Ich habe Game Center-Funktionen wie Erfolge und Bestenlisten implementiert, und jetzt arbeite ich an den Herausforderungen. Ich hatte den Eindruck, dass ich keinen zusätzlichen Code hinzufügen musste - wenn ich Erfolge oder Ranglisten hätte, wären die Spieler in der Lage, Herausforderungen an ihre Freunde zu senden. Aber jetzt, in iOS10, kannst du Spieler nicht mehr als Freunde hinzufügen - die Herausforderungen werden über iMessages abgewickelt. Das Problem ist - ich sehe diese Funktion nirgends auf dem GKViewController-Bildschirm. Wenn du eine Errungenschafts-/Leitertafel-Punktzahl auswählst, kannst du auf "Freunde herausfordern" tippen, aber es werden nur die Spieler vorgeschlagen, die du bereits in deiner Freundesliste und nicht in deiner Kontaktliste hast. Apple hat auch GKChallengesViewController eingestellt, daher bin ich mir nicht sicher, wo ich nachschauen soll.Game Center-Herausforderungen in iOS 10

Kann jemand das iMessage Challenges-Feature zu Game Center in iOS 10 hinzufügen?

Update: Ich habe gesehen, dass diese Funktion innerhalb der GKMatchmakerViewController lebt, aber das scheint für Multiplayer-Art Dinge zu sein. Ich bin mir immer noch nicht sicher, wie ich das verwenden soll, um einfach Herausforderungen zu senden.

+0

alle Arbeitsfunktionen finden Sie hier. https://developer.apple.com/reference/gamekit – John

Antwort

0

Vom Apple Docs:

eine Herausforderung Issuing keine Benutzeroberfläche Ausgabe der Herausforderung an den Spieler anzuzeigen; das ist Code, den Sie selbst implementieren müssen.

Es gibt auch einige Beispiele, wie Herausforderungen zu erteilen und wie die Spieler zu finden, laden Sie zu können, wie zum Beispiel:

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

... oder:

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

Durch die Sieht davon aus können Sie immer noch nur Spieler einladen, die bereits Teil des Game Centers sind, also keine willkürlichen "Kontakte" aus der Kontaktliste (was sinnvoll ist), aber das ist nur eine Annahme.

+0

Danke für den Beitrag. Ich war unter der Annahme von der WWDC 2016 Video, dass Herausforderungen über Ihre Kontaktliste gesendet werden könnte, anstatt Ihre Game Center Freundesliste, die nicht mehr hinzugefügt werden kann. – claassenApps