Come ottenere punteggi più alti da OpenFeint?
-
01-10-2019 - |
Domanda
Nel loro supporto OpenFeint questo danno, ma io non capisco. Come posso ottenere i dati leaderboard, dire top 10 e mostrarlo nella mia propria UI?
Link originale: http://www.openfeint.com/ ofdeveloper / index.php / kb / article / 000028
[OFHighScoreService getPage:1 forLeaderboard:@"leaderboard_id_string" friendsOnly:NO silently:YES onSuccess:OFDelegate(self, @selector(_scoresDownloaded:)) onFailure:OFDelegate(self, @selector(_failedDownloadingScores))];
- (void)_scoresDownloaded:(OFPaginatedSeries*)page
{
NSMutableArray* highscores = nil;
if ([page count] > 0)
{
if ([[page objectAtIndex:0] isKindOfClass:[OFTableSectionDescription class]])
{
// NOTE: In the following line, we access "[page objectAtIndex:1]" to retrieve high scores from
// the global leaderboard. Using "[page objectAtIndex:0]" would retrieve scores just for the local player.
// Older versions of OpenFeint did not break this out into 2 sections.
highscores = [(OFTableSectionDescription*)[page objectAtIndex:1] page].objects;
}
else
{
highscores = page.objects;
}
}
for (OFHighScore* score in highscores)
{
// ...
}
}
- (BOOL)canReceiveCallbacksNow
{
return YES;
}
Soluzione
Il codice per richiedere una pagina di punteggi più alti è la prima linea, cioè:.
[OFHighScoreService getPage:1 forLeaderboard:@"leaderboard_id_string" friendsOnly:NO silently:YES onSuccess:OFDelegate(self, @selector(_scoresDownloaded:)) onFailure:OFDelegate(self, @selector(_failedDownloadingScores))];
È messo questa riga nel luogo in cui si desidera avviare la query per i punteggi più alti. È possibile modificare il numero di pagina, come richiesto. Una volta che la pagina di punteggi più alti è stato recuperato, il _scoresDownloaded
callback viene chiamata. L'esempio mostra come si sarebbero scorrere gli oggetti OFHighScore
nella matrice highscores
. Si potrebbe sostituire il commento // ...
con il proprio codice per mostrare i punteggi al giocatore, o qualsiasi altra cosa.
(In caso di _failedDownloadingScores
errore viene chiamato,. È necessario implementare che a mostrare un errore)