이 가이드에서는 Android 애플리케이션에서 리더보드 API를 사용하여 시각적 리더보드를 만들고 플레이어 점수를 기록하고 점수를 이전 게임 세션의 플레이어 점수와 비교하는 방법을 보여줍니다. API는 com.google.android.gms.games
및 com.google.android.gms.games.leaderboards
패키지에서 찾을 수 있습니다.
시작하기 전에
아직 검토하지 않았다면 리더보드 게임 개념을 검토하는 것이 좋습니다.
리더보드 API를 사용하여 코딩을 시작하기 전에 다음을 진행합니다.
- Google Play 서비스 SDK 설정 가이드에 따라, Google Play 게임즈 서비스를 사용하도록 앱을 설치하고 설정합니다.
- Google Play Console 가이드의 안내에 따라 게임에서 표시하거나 업데이트할 리더보드를 정의합니다.
- Android 샘플 페이지에서 리더보드 코드 샘플을 다운로드하여 검토합니다.
- 품질 체크리스트에 설명된 권장사항을 숙지합니다.
리더보드 클라이언트 가져오기
리더보드 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를 정의하는 것이 좋습니다. 플레이어 점수를 업데이트하고 로드하기 위해 호출을 실행한 경우 API 할당량을 초과하지 않도록 관련 권장사항도 따라야 합니다.
리더보드 표시
리더보드를 표시하려면 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); } }); }
결과가 반환되지 않더라도 API가 호출 패키지의 ID를 가져올 수 있도록 startActivityForResult
를 사용해야 합니다. 기본 리더보드 UI의 예가 아래에 나와 있습니다.