Tài liệu này sẽ hướng dẫn bạn cách sử dụng API bảng xếp hạng trong một ứng dụng Android để tạo bảng xếp hạng hình ảnh, ghi lại điểm của người chơi và so sánh với điểm số của người chơi trong các phiên chơi trước đó. Bạn có thể tìm thấy các API trong các gói com.google.android.gms.games
và com.google.android.gms.games.leaderboards
.
Trước khi bắt đầu
Nếu chưa từng có kinh nghiệm, bạn có thể xem lại các khái niệm về bảng xếp hạng của trò chơi.
Trước khi bắt đầu lập trình bằng API bảng xếp hạng, bạn hãy:
- Vui lòng làm theo hướng dẫn để cài đặt và thiết lập ứng dụng để sử dụng Dịch vụ trò chơi của Google Play trong hướng dẫn Thiết lập SDK dịch vụ của Google Play.
- Xác định các bảng xếp hạng mà bạn muốn trò chơi của mình hiển thị hoặc cập nhật, bằng cách làm theo hướng dẫn trong hướng dẫn của Google Play Console.
- Tải xuống và xem lại các mã mẫu bảng xếp hạng trên trang mẫu Android.
- Làm quen với những đề xuất được mô tả trong Danh mục kiểm tra chất lượng.
Tải ứng dụng bảng xếp hạng
Để có thể sử dụng API bảng xếp hạng, trước tiên, trò chơi của bạn phải có được một đối tượng
LeaderboardsClient
.
Bạn có thể thực hiện việc này bằng cách gọi phương thức Games.getLeadeboardsClient()
và truyền vào hoạt động cũng như GoogleSignInAccount
cho người chơi hiện tại. Để tìm hiểu cách truy xuất thông tin tài khoản người chơi, hãy xem bài viết Đăng nhập vào trò chơi trên Android.
Cập nhật điểm số của người chơi
Khi điểm số của người chơi thay đổi (ví dụ: khi người chơi kết thúc trò chơi), trò chơi của bạn có thể cập nhật điểm số của họ trên bảng xếp hạng bằng cách gọi LeaderboardsClient.submitScore()
, đồng thời truyền mã bảng xếp hạng cũng như giá trị điểm thô.
Đoạn mã sau đây cho thấy cách ứng dụng của bạn có thể cập nhật điểm số của người chơi:
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .submitScore(getString(R.string.leaderboard_id), 1337);
Bạn nên xác định mã bảng xếp hạng trong tệp strings.xml
để trò chơi của bạn có thể tham chiếu đến bảng xếp hạng theo mã tài nguyên. Khi thực hiện lệnh gọi để cập nhật và tải điểm số của người chơi, bạn phải nhớ làm theo các phương pháp hay nhất này để tránh vượt quá định mức API.
Hiển thị bảng xếp hạng
Để hiển thị bảng xếp hạng, hãy gọi LeaderboardsClient.getLeaderboardIntent()
để lấy
Intent
tạo giao diện người dùng của bảng xếp hạng mặc định. Sau đó, trò chơi của bạn có thể hiển thị giao diện người dùng bằng cách gọi
startActivityForResult
.
Đoạn mã sau đây cho thấy cách ứng dụng của bạn có thể cập nhật điểm số của người chơi. Trong đoạn mã, RC_LEADERBOARD_UI
là một số nguyên tùy ý cho mã yêu cầu.
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); } }); }
Xin lưu ý rằng mặc dù không có kết quả nào được trả về, nhưng chúng ta vẫn phải sử dụng startActivityForResult
để API có thể lấy thông tin nhận dạng của gói gọi. Dưới đây là một ví dụ về giao diện người dùng của bảng xếp hạng mặc định.