Bestenlisten im Android-Spiel

In diesem Leitfaden erfahren Sie, wie Sie APIs für Bestenlisten in einer Android-App verwenden. um visuelle Bestenlisten zu erstellen, die Punktzahl eines Spielers aufzuzeichnen und die Punktzahlen zu vergleichen. mit dem Ergebnis des Spielers aus früheren Spielsitzungen vergleichen. Die APIs finden Sie in der com.google.android.gms.games und com.google.android.gms.games.leaderboards Pakete.

Hinweis

Falls Sie dies noch nicht getan haben, kann es hilfreich sein, sich die Spielkonzepte für Bestenlisten.

Bevor Sie mit dem Programmieren mit den Bestenlisten-APIs beginnen:

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 Aktivitäten.

Punktzahl des Spielers aktualisieren

Wenn sich die Punktzahl eines Spielers ändert, z. B. wenn er das Spiel beendet, gilt Folgendes: Die Punktzahl des Spiels kann durch Aufrufen von LeaderboardsClient.submitScore() in der Bestenliste aktualisiert werden. und übergibt die Bestenlisten-ID und den Punktzahl-Rohwert.

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, Ihr Spiel kann anhand der Ressourcen-ID auf die Bestenlisten verweisen. Wenn Sie Anrufe bei die Spielerergebnisse zu aktualisieren und zu laden. Best Practices, um eine Überschreitung Ihres API-Kontingents zu vermeiden.

Bestenliste anzeigen

Rufen Sie zum Anzeigen der Bestenliste LeaderboardsClient.getLeaderboardIntent() auf. Sie erhalten Intent bis Standardbenutzeroberfläche für Bestenlisten erstellen. Ihr Spiel kann dann die Benutzeroberfläche aufrufen, indem Sie startActivityForResult

Das folgende Code-Snippet zeigt, wie Ihre App die Punktzahl des Spielers aktualisieren kann. Im Code-Snippet RC_LEADERBOARD_UI ist 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);
        }
      });
}

Beachten Sie, dass wir, obwohl kein Ergebnis zurückgegeben wird, startActivityForResult damit die API die Identität des aufrufenden Pakets ermitteln kann. Ein Beispiel für den Standardwert Bestenlisten-UI ist unten zu sehen.