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