Erfolge in Android-Spielen

In diesem Leitfaden erfahren Sie, wie Sie die Success APIs in einer Android-App verwenden. um Erfolge in deinem Spiel freizuschalten und anzuzeigen. Die APIs finden Sie in der com.google.android.gms.games und com.google.android.gms.games.achievements Pakete.

Hinweis

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

Bevor Sie mit dem Programmieren mit der Achievements API beginnen:

Client für Erfolge abrufen

Damit Sie die Erfolges-API verwenden können, muss Ihr Spiel zuerst eine AchievementsClient-Objekt. Rufen Sie dazu die Methode Games.getAchievementClient()-Methode und übergeben die Aktivität und den GoogleSignInAccount für den aktuellen Spieler. Weitere Informationen zum Abrufen der Informationen zum Spielerkonto finden Sie unter Anmeldung in Android-Spielen.

Erfolge freischalten

Rufen Sie zum Freischalten eines Erfolgs die Methode AchievementsClient.unlock() auf und die Erfolgs-ID übergeben.

Das folgende Code-Snippet zeigt, wie Sie mit Ihrer App Erfolge freischalten können:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .unlock(getString(R.string.my_achievement_id));

Bei einem Erfolg vom Typ inkrementell, d. h., es sind mehrere Schritte erforderlich, um entsperren Sie es), rufen Sie stattdessen AchievementsClient.increment() an.

Das folgende Code-Snippet zeigt, wie Ihre App den Erfolg des Spielers steigern kann:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .increment(getString(R.string.my_achievement_id), 1);

Sie müssen keinen zusätzlichen Code schreiben, um den Erfolg freizuschalten. Google Play-Spieldienste schaltet den Erfolg automatisch frei, sobald die erforderliche Anzahl von Schritten erreicht ist.

Es empfiehlt sich, die Erfolgs-IDs in der Datei strings.xml zu definieren, kann Ihr Spiel anhand der Ressourcen-ID auf die Erfolge verweisen. Bei Aufrufen zum Aktualisieren und Laden erhalten, sollten Sie auch diese Best Practices befolgen, damit Ihr API-Kontingent nicht überschritten wird.

Erfolge anzeigen

Rufen Sie AchievementsClient.getAchievementsIntent() auf, um sich die Erfolge eines Spielers anzusehen. um eine Intent zum Erstellen die Standardbenutzeroberfläche für Erfolge. Ihr Spiel kann dann die Benutzeroberfläche aufrufen, indem Sie startActivityForResult

Das folgende Code-Snippet zeigt, wie die Standardbenutzeroberfläche für Erfolge in Ihrer App dargestellt werden kann. Im Snippet ist RC_ACHIEVEMENT_UI eine beliebige Ganzzahl, die das Spiel als Anfragecode verwendet.

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

Unten sehen Sie ein Beispiel für die Standardbenutzeroberfläche für Erfolge.