In diesem Leitfaden erfahren Sie, wie Sie mit APIs für Bestenlisten in einer Android-App visuelle Bestenlisten erstellen, die Punktzahl eines Spielers aufzeichnen und diese mit der Punktzahl des Spielers aus früheren Spielsitzungen vergleichen. Sie finden die APIs in den Paketen com.google.android.gms.games
und com.google.android.gms.games.leaderboards
.
Vorbereitung
Es kann hilfreich sein, die Konzepte von Bestenlistenspielen noch einmal durchzugehen, falls Sie dies noch nicht getan haben.
Bevor Sie mit dem Programmieren mit den Bestenlisten-APIs beginnen:
Folgen Sie der Anleitung zum Installieren und Einrichten Ihrer App für die Verwendung der Google Play-Spieldienste in der Anleitung Google Play Services SDK einrichten.
Definieren Sie die Bestenlisten, die Ihr Spiel anzeigen oder aktualisieren soll. Folgen Sie dazu der Anleitung in der Anleitung zur Google Play Console.
Laden Sie die Codebeispiele für Bestenlisten auf der Seite mit Android-Beispielen in GiHub herunter und prüfen Sie sie.
Machen Sie sich mit den Empfehlungen in der Checkliste zur Qualität vertraut.
Client für Bestenlisten abrufen
Damit Sie die Bestenlisten-API verwenden können, muss Ihr Spiel zuerst ein LeaderboardsClient
-Objekt abrufen.
Rufen Sie dazu die Methode Games.getLeadeboardsClient()
auf und übergeben Sie die Aktivität.
Punktzahl des Spielers aktualisieren
Wenn sich die Punktzahl eines Spielers ändert (z. B. wenn der Spieler das Spiel beendet), kann die Punktzahl in Ihrem Spiel in der Bestenliste aktualisiert werden, indem LeaderboardsClient.submitScore()
aufgerufen und die ID der Bestenliste sowie der Punktzahl-Rohwert übergeben werden.
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 Spielerpunktzahlen aktualisieren und laden, sollten Sie außerdem diese Best Practices befolgen, damit Ihr API-Kontingent nicht überschritten wird.
Bestenliste anzeigen
Rufe zum Anzeigen von Bestenlisten LeaderboardsClient.getLeaderboardIntent()
auf, um ein Intent
-Element abzurufen, mit dem die Standardbenutzeroberfläche für Bestenlisten erstellt wird. In Ihrem Spiel kann dann durch Aufrufen von startActivityForResult
die Benutzeroberfläche aufgerufen werden.
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 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 siehst du ein Beispiel für die standardmäßige Benutzeroberfläche für Bestenliste.