Este guia mostra como usar APIs de placares em um aplicativo Android
para criar placares visuais, registrar a pontuação de um jogador e compará-la
em relação à pontuação do jogador em sessões de jogos anteriores. As APIs podem ser encontradas
nos pacotes com.google.android.gms.games
e com.google.android.gms.games.leaderboards
.
Antes de começar
Caso ainda não tenha feito isso, recomendamos consultar os conceitos de placares no jogo.
Antes de começar a programar usando as APIs de placares:
- Siga as instruções para instalar e configurar seu app para uso Serviços relacionados a jogos do Google Play na Guia Configurar o SDK do Google Play Services.
- Defina os placares que você quer que o jogo mostre ou atualize: Seguir as instruções do guia do Google Play Console.
- Faça o download e analise os exemplos de código dos placares na Página de exemplos do Android.
- Conheça melhor as recomendações descritas na Lista de verificação de qualidade.
Como conseguir o cliente de placares
Para começar a usar a API de placares, o jogo precisa ter um objeto LeaderboardsClient
.
Para isso, chame o método Games.getLeadeboardsClient()
e transmita a
atividade.
Atualizar a pontuação do jogador
Quando a pontuação do jogador muda (por exemplo, quando ele termina uma partida), o
jogo pode atualizar o placar chamando LeaderboardsClient.submitScore()
e transmitindo o ID do placar e o valor bruto da pontuação.
O snippet de código abaixo mostra como o app pode atualizar a pontuação do jogador:
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
É recomendado definir o ID do placar no arquivo strings.xml
para que
o jogo possa referenciar os placares pelos IDs de recurso. Ao fazer chamadas para
atualize e carregue as pontuações dos jogadores, siga estas
práticas recomendadas para evitar exceder sua cota de API.
Exibição de um placar
Para mostrar o placar, chame LeaderboardsClient.getLeaderboardIntent()
para receber um Intent
e
criar a interface do usuário padrão. Em seguida, o jogo pode mostrar a IU chamando
startActivityForResult
.
O snippet de código abaixo mostra como o app pode atualizar a pontuação do jogador. No
snippet de código, RC_LEADERBOARD_UI
é um número inteiro arbitrário para o código da solicitação.
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); } }); }
Mesmo que nenhum resultado seja retornado, precisamos usar
startActivityForResult
para que a API possa receber a identidade do pacote que fez a chamada. Confira abaixo um exemplo da
IU de placar padrão.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/games/services/android/images/Leaderboard_Android.png?authuser=0000&hl=pt)