במדריך הזה מוסבר איך להשתמש בממשקי ה-API של לוחות הלידרבורד באפליקציית Android כדי ליצור לוחות לידרבורד חזותיים, לתעד את הניקוד של השחקן ולהשוות את הניקוד לניקוד של השחקן מסשנים קודמים של המשחק. ממשקי ה-API נכללים בחבילות com.google.android.gms.games ו-com.google.android.gms.games.leaderboards.
לפני שמתחילים
אם עדיין לא עשיתם זאת, אנחנו ממליצים לכם להכיר את המושגים שקשורים לטבלאות המובילים במשחקים.
לפני שמתחילים לכתוב קוד באמצעות ממשקי ה-API של טבלאות המובילים:
מתקינים ומגדירים את האפליקציה לפי ההוראות לשימוש ב-Google Play Games Services שמופיעות במדריך להגדרת Google Play Services SDK.
מגדירים את הלידרבורדים שרוצים שהמשחק יציג או יעדכן, לפי ההוראות במדריך Google Play Console.
מורידים ומעיינים בדוגמאות הקוד של טבלאות ההישגים שמופיעות בדף הדוגמאות ל-Android ב-GitHub.
מעיינים בהמלצות שמופיעות ברשימת המשימות לאיכות.
קריאה לשיטה של לוחות לידרבורד
כדי להתחיל להשתמש ב-Leaderboards API, המשחק שלכם צריך קודם לקבל אובייקט LeaderboardsClient.
כדי לעשות את זה, מפעילים את השיטה PlayGames.getLeadeboardsClient() ומעבירים את הפעילות.
עדכון התוצאה של השחקן
כשהניקוד של השחקן משתנה (לדוגמה, כשהשחקן מסיים את המשחק), המשחק יכול לעדכן את הניקוד בטבלת המובילים באמצעות קריאה אל LeaderboardsClient.submitScore() והעברת מזהה טבלת המובילים וערך הניקוד הגולמי.
בקטע הקוד הבא מוצג איך האפליקציה יכולה לעדכן את הניקוד של השחקן:
PlayGames.getLeaderboardsClient(this)
.submitScore(getString(R.string.leaderboard_id), 1337);מומלץ להגדיר את מזהה הלידרבורד בקובץ strings.xml, כדי שהמשחק יוכל להתייחס ללידרבורד לפי מזהה המשאב. כשמבצעים קריאות כדי לעדכן ולטעון את הניקוד של השחקן, חשוב לפעול לפי השיטות המומלצות האלה כדי להימנע מחריגה ממכסת ה-API.
הצגת לידרבורד
כדי להציג את הלידרבורד, קוראים ל-LeaderboardsClient.getLeaderboardIntent() כדי לקבל Intent וליצור את ממשק המשתמש של הלידרבורד שמוגדר כברירת מחדל. כדי להציג את ממשק המשתמש במשחק, אפשר לקרוא ל-startActivityForResult.
בקטע הקוד הבא מוצג איך האפליקציה יכולה לעדכן את הניקוד של השחקן. בקטע הקוד, 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); } }); }
גם אם לא מוחזרת תוצאה, צריך להשתמש ב-startActivityForResult כדי שה-API יוכל לקבל את הזהות של חבילת הקריאה. למטה מוצגת דוגמה לממשק המשתמש של טבלת המובילים שמוגדר כברירת מחדל.