Este guia descreve como usar as APIs de conquistas em um aplicativo Android
para desbloquear e mostrar conquistas no seu jogo. As APIs podem ser encontradas
nos pacotes com.google.android.gms.games
e com.google.android.gms.games.achievements
.
Antes de começar
Caso ainda não tenha feito isso, recomendamos consultar os conceitos de conquistas no jogo.
Antes de começar a programar usando a API de conquistas:
- Siga as instruções para instalar e configurar seu app para usar os serviços relacionados a jogos do Google Play no guia Configurar o SDK do Google Play Services.
- Defina as conquistas que você quer que o jogo desbloqueie ou mostre seguindo as instruções do guia do Google Play Console.
- Faça o download e analise os exemplos de código de conquistas na página de exemplos do Android (em inglês).
- Conheça melhor as recomendações descritas na Lista de verificação de qualidade.
Como conseguir um cliente de conquistas
Para começar a usar a API de conquistas, o jogo precisa ter um objeto
AchievementsClient
. Para fazer isso, chame o método
Games.getAchievementClient()
e transmita a atividade.
Desbloquear conquistas
Para desbloquear uma conquista, chame o método AchievementsClient.unlock()
e
transmita o ID da conquista.
O snippet de código abaixo mostra como o app pode desbloquear conquistas:
PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));
Se a conquista for do tipo incremental, ou seja, várias etapas forem necessárias para
desbloqueá-la, chame AchievementsClient.increment()
.
O snippet de código abaixo mostra como o app pode incrementar a conquista do jogador:
PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);
Você não precisa programar mais códigos para desbloquear a conquista. Os serviços relacionados a jogos do Google Play desbloqueiam a conquista automaticamente quando o número de etapas necessário é atingido.
É recomendado definir os IDs de conquista no arquivo strings.xml
para que
o jogo possa referenciar as conquistas por ID de recurso. Ao fazer chamadas para atualizar e carregar
conquistas, siga também estas práticas recomendadas para
evitar exceder sua cota de API.
Exibindo conquistas
Para mostrar as conquistas de um jogador, chame AchievementsClient.getAchievementsIntent()
para receber uma Intent
e criar
a interface do usuário de conquistas padrão. Em seguida, o jogo pode mostrar a IU chamando
startActivityForResult
.
O snippet de código abaixo mostra como o app pode exibir a interface padrão de conquista de usuários.
No snippet, RC_ACHIEVEMENT_UI
é um número inteiro arbitrário que o jogo usa como código de solicitação.
private static final int RC_ACHIEVEMENT_UI = 9003; private void showAchievements() { PlayGames.getAchievementsClient(this) .getAchievementsIntent() .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_ACHIEVEMENT_UI); } }); }
Confira abaixo um exemplo da IU de conquistas padrão.
