במדריך הזה מוסבר איך להשתמש בממשקי 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 כדי לעדכן ולטעון את הניקוד של השחקנים, חשוב לפעול לפי השיטות המומלצות האלה כדי לא לחרוג ממכסת ה-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 יוכל לקבל את הזהות של חבילת הקריאה. למטה מוצגת דוגמה לממשק המשתמש של טבלת המובילים שמוגדר כברירת מחדל.
