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