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 sie mit der Punktzahl des Spielers aus früheren Spielsitzungen zu vergleichen. Die APIs finden Sie in den Paketen com.google.android.gms.games
und com.google.android.gms.games.leaderboards
.
Hinweis
Falls Sie es noch nicht getan haben, sollten Sie sich die Spielkonzepte für Bestenlisten ansehen.
Bevor du mit dem Codieren mit den Bestenlisten-APIs beginnst, solltest du Folgendes beachten:
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.
Bestimmen Sie die Bestenlisten, die in Ihrem Spiel angezeigt oder aktualisiert werden sollen. Folgen Sie dazu der Anleitung im Leitfaden zur Google Play Console.
Laden Sie die Codebeispiele für Bestenlisten auf der GitHub-Seite mit Android-Beispielen herunter und sehen Sie sich diese an.
Machen Sie sich mit den Empfehlungen in der Qualitäts-Checkliste vertraut.
Leaderboard-Client abrufen
Damit Sie die Bestenlisten-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.
Punktzahl des Spielers aktualisieren
Wenn sich die Punktzahl des Spielers ändert (z. B. wenn er das Spiel beendet), kann Ihr Spiel seine Punktzahl in der Bestenliste aktualisieren, indem Sie LeaderboardsClient.submitScore()
aufrufen und die Bestenlisten-ID und den Rohwert der Punktzahl übergeben.
Das folgende Code-Snippet zeigt, wie Ihre App den Punktestand 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 Spielerpunktzahlen ausführen, sollten Sie auch diese Best Practices befolgen, um eine Überschreitung Ihres API-Kontingents zu vermeiden.
Bestenliste anzeigen
Rufe LeaderboardsClient.getLeaderboardIntent()
auf, um Intent
zu erhalten und die Standardbenutzeroberfläche für die Bestenliste zu erstellen. Ihr Spiel kann dann die Benutzeroberfläche aufrufen, indem es startActivityForResult
aufruft.
Das folgende Code-Snippet zeigt, wie Ihre App den Punktestand des Spielers aktualisieren kann. Im Code-Snippet ist RC_LEADERBOARD_UI
eine beliebige Ganzzahl für den Anfragecode.
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-Bestenliste.