In diesem Leitfaden erfahren Sie, wie Sie Bestenlisten-APIs in einer Android-App verwenden, um visuelle Bestenlisten zu erstellen, die Punktzahl eines Spielers aufzuzeichnen und die Punktzahl mit der Punktzahl des Spielers aus früheren Spielsitzungen zu vergleichen. Die APIs befinden sich in den Paketen com.google.android.gms.games
und com.google.android.gms.games.leaderboards
.
Hinweis
Falls Sie das noch nicht getan haben, sollten Sie sich mit den Konzepten für Bestenlisten vertraut machen.
Bevor Sie mit der Programmierung mit den Leaderboard-APIs beginnen, sollten Sie Folgendes tun:
Folgen Sie der Anleitung zum Installieren und Einrichten Ihrer App für die Verwendung der Google Play-Spieldienste im Leitfaden Google Play Services SDK einrichten.
Definieren Sie die Bestenlisten, die in Ihrem Spiel angezeigt oder aktualisiert werden sollen, indem Sie der Anleitung für die Google Play Console folgen.
Laden Sie die Codebeispiele für Bestenlisten auf der Seite mit Android-Beispielen auf GitHub herunter und sehen Sie sie sich an.
Machen Sie sich mit den Empfehlungen in der Qualitätscheckliste vertraut.
Leaderboards-Client abrufen
Bevor Sie die Leaderboards API verwenden können, muss Ihr Spiel zuerst ein LeaderboardsClient
-Objekt abrufen.
Rufen Sie dazu die Methode PlayGames.getLeadeboardsClient()
auf und übergeben Sie die Aktivität.
Spielergebnis aktualisieren
Wenn sich die Punktzahl des Spielers ändert (z. B. wenn der Spieler das Spiel beendet), kann das Spiel die Punktzahl in der Bestenliste aktualisieren, indem es LeaderboardsClient.submitScore()
aufruft und die Bestenlisten-ID und den Rohpunktzahlwert übergibt.
Das folgende Code-Snippet zeigt, wie Ihre App die Punktzahl des Spielers aktualisieren kann:
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
Es empfiehlt sich, die Bestenlisten-ID in der Datei strings.xml
zu definieren, damit Ihr Spiel anhand der Ressourcen-ID auf die Bestenlisten verweisen kann. Wenn Sie Aufrufe zum Aktualisieren und Laden von Spielergebnissen ausführen, sollten Sie auch diese Best Practices befolgen, um Ihr API-Kontingent nicht zu überschreiten.
Bestenliste anzeigen
Rufen Sie LeaderboardsClient.getLeaderboardIntent()
auf, um die Bestenliste aufzurufen und ein Intent
zu erhalten, mit dem Sie die Standardbenutzeroberfläche für die Bestenliste erstellen können. Ihr Spiel kann die Benutzeroberfläche dann durch Aufrufen von startActivityForResult
aufrufen.
Das folgende Code-Snippet zeigt, wie Ihre App die Punktzahl des Spielers aktualisieren kann. Im Code-Snippet ist RC_LEADERBOARD_UI
eine beliebige Ganzzahl für den Anforderungscode.
private static final int RC_LEADERBOARD_UI = 9004; private void showLeaderboard() { PlayGames.getLeaderboardsClient(this) .getLeaderboardIntent(getString(R.string.leaderboard_id)) .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_LEADERBOARD_UI); } }); }
Auch wenn kein Ergebnis zurückgegeben wird, müssen Sie startActivityForResult
verwenden, damit die API die Identität des aufrufenden Pakets abrufen kann. Unten sehen Sie ein Beispiel für die Standard-Bestenlisten-UI.
