Android 게임의 리더보드

이 가이드에서는 Android 애플리케이션에서 리더보드 API를 사용하는 방법을 보여줍니다. 시각적 리더보드를 만들고, 플레이어의 점수를 기록하며, 점수와 비교할 수 있습니다. API는 com.google.android.gms.gamescom.google.android.gms.games.leaderboards 패키지에서 찾을 수 있습니다.

시작하기 전에

아직 검토하지 않았다면 리더보드 게임 개념을 검토하는 것이 좋습니다.

리더보드 API를 사용하여 코딩을 시작하기 전에 다음을 진행합니다.

리더보드 클라이언트 가져오기

리더보드 API를 사용하려면 먼저 게임에서 LeaderboardsClient 객체를 가져와야 합니다. 이렇게 하려면 Games.getLeadeboardsClient() 메서드를 호출하고 활동 및 현재 플레이어의 GoogleSignInAccount. 이 자세한 내용은 Android 게임에서 로그인을 참조하세요.

플레이어의 점수 업데이트

플레이어의 점수가 변경(예: 플레이어가 게임을 완료했을 때)되면 LeaderboardsClient.submitScore()를 호출하고 리더보드 ID 및 원시 점수 값을 전달하여 리더보드의 점수를 업데이트할 수 있습니다.

다음 코드 스니펫은 앱에서 플레이어의 점수를 업데이트할 수 있는 방법을 보여줍니다.

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

게임에서 리소스 ID별로 리더보드를 참조할 수 있도록 strings.xml 파일에 리더보드 ID를 정의하는 것이 좋습니다. 전화를 걸 때 플레이어 점수를 업데이트하고 로드하려면 권장사항을 따르세요.

리더보드 표시

리더보드를 표시하려면 Intent를 가져올 LeaderboardsClient.getLeaderboardIntent()를 호출하여 기본 리더보드 사용자 인터페이스를 생성합니다. 그러면 게임이 startActivityForResult를 호출하여 UI를 불러올 수 있게 됩니다.

다음 코드 스니펫은 앱에서 플레이어의 점수를 업데이트할 수 있는 방법을 보여줍니다. 코드 스니펫에서 RC_LEADERBOARD_UI는 요청 코드의 임의 정수입니다.

private static final int RC_LEADERBOARD_UI = 9004;

private void showLeaderboard() {
  Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        }
      });
}

반환되는 결과가 없더라도 startActivityForResult 드림 API가 호출 패키지의 ID를 가져올 수 있습니다. 기본 리더보드 UI의 예가 아래에 나와 있습니다.