Obiettivi nei giochi Android

Questa guida mostra come utilizzare le API degli obiettivi in un'applicazione per Android per sbloccare e visualizzare gli obiettivi nel tuo gioco. Puoi trovare le API in com.google.android.gms.games e com.google.android.gms.games.achievements pacchetti.

Prima di iniziare

Se non l'hai ancora fatto, potrebbe essere utile consultare il concetti del gioco degli obiettivi.

Prima di iniziare a programmare con l'API Obiettivi:

Acquisizione di un cliente degli obiettivi

Per iniziare a utilizzare l'API Obiettivi, il tuo gioco deve prima ricevere un AchievementsClient. A questo scopo, puoi richiamare Games.getAchievementClient() e il passaggio dell'attività e GoogleSignInAccount per il player corrente. Per scoprire come recuperare dati dell'account del giocatore, consulta la sezione Accedere ai giochi Android.

Sblocco degli obiettivi

Per sbloccare un obiettivo, chiama il metodo AchievementsClient.unlock() e da trasmettere nell'ID obiettivo.

Il seguente snippet di codice mostra come la tua app può sbloccare gli obiettivi:

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

Se l'obiettivo è di tipo incrementale (ovvero, sono necessari diversi passaggi per sbloccalo), chiama invece AchievementsClient.increment().

Il seguente snippet di codice mostra in che modo la tua app può incrementare l'obiettivo del player:

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

Non devi scrivere altro codice per sbloccare l'obiettivo. Servizi per i giochi di Google Play sblocca automaticamente l'obiettivo una volta raggiunto il numero di passaggi richiesto.

È buona norma definire gli ID obiettivo nel file strings.xml, quindi il gioco può fare riferimento agli obiettivi per ID risorsa. Quando effettui chiamate di aggiornamento e caricamento risultati, accertati di seguire anche queste best practice per evitare di superare la quota API.

Visualizzazione obiettivi

Per mostrare gli obiettivi di un giocatore, chiama AchievementsClient.getAchievementsIntent() per ottenere un Intent per creare l'interfaccia utente predefinita degli obiettivi. Il gioco può quindi visualizzare la UI chiamando startActivityForResult

Il seguente snippet di codice mostra come la tua app può visualizzare l'interfaccia utente predefinita dell'obiettivo. Nello snippet, RC_ACHIEVEMENT_UI è un numero intero arbitrario utilizzato dal gioco come codice di richiesta.

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);
        }
      });
}

Di seguito è riportato un esempio della UI predefinita degli obiettivi.