이 가이드에서는 Android 앱에서 리더보드 API를 사용하여 시각적 리더보드를 만들고 플레이어 점수를 기록하고 점수를 이전 게임 세션의 플레이어 점수와 비교하는 방법을 보여줍니다. API는 com.google.android.gms.games
및 com.google.android.gms.games.leaderboards
패키지에서 찾을 수 있습니다.
시작하기 전에
아직 검토하지 않았다면 리더보드 게임 개념을 검토하는 것이 좋습니다.
리더보드 API를 사용하여 코딩을 시작하기 전에 다음을 진행합니다.
Google Play 서비스 SDK 설정 가이드에 따라, Google Play 게임즈 서비스를 사용하도록 앱을 설치하고 설정합니다.
Google Play Console 가이드의 안내에 따라, 게임에서 표시하거나 업데이트할 리더보드를 정의합니다.
GiHub의 Android 샘플 페이지에서 리더보드 코드 샘플을 다운로드하여 검토합니다.
품질 체크리스트에 설명된 권장 사항을 숙지합니다.
리더보드 클라이언트 가져오기
리더보드 API를 사용하려면 먼저 게임에서 LeaderboardsClient
객체를 가져와야 합니다.
이렇게 하려면 Games.getLeadeboardsClient()
메서드를 호출하고 활동을 전달하면 됩니다.
플레이어 점수 업데이트
플레이어의 점수가 변경(예: 플레이어가 게임을 완료했을 때)되면 LeaderboardsClient.submitScore()
를 호출하고 리더보드 ID 및 원시 점수 값을 전달하여 리더보드의 점수를 업데이트할 수 있습니다.
다음 코드 스니펫은 앱에서 플레이어의 점수를 업데이트할 수 있는 방법을 보여줍니다.
PlayGames.getLeaderboardsClient(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() { PlayGames.getLeaderboardsClient(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의 예가 아래에 나와 있습니다.