במדריך הזה מוסבר איך להשתמש בממשקי ה-API של ההישגים באפליקציה ל-Android
כדי לפתוח ולהציג הישגים במשחק. ניתן למצוא את ממשקי ה-API.
בcom.google.android.gms.games
ו-com.google.android.gms.games.achievements
חבילות.
לפני שמתחילים
אם עדיין לא עשית זאת, מומלץ לעיין השגת מושגים במשחק.
לפני שמתחילים לתכנת באמצעות ה-API של ההישגים:
- פועלים לפי ההוראות להתקנה ולהגדרה של האפליקציה לשימוש שירותי המשחקים של Google Play ב מדריך להגדרת Google Play Services SDK.
- הגדרת ההישגים שרוצים שהמשחק ייפתח או יוצג בהם לפי יש לפעול לפי ההוראות המפורטות במדריך של Google Play Console.
- אפשר להוריד ולבדוק את דוגמאות הקוד של ההישגים ב דף דוגמאות ל-Android
- מומלץ להכיר את ההמלצות שמתוארות במאמר רשימת משימות איכות.
קבלת לקוח של הישגים
כדי להתחיל להשתמש ב-API של ההישגים, המשחק צריך לקבל תחילה
אובייקט AchievementsClient
. אפשר לעשות זאת באמצעות קריאה ל
Games.getAchievementClient()
והעברת הפעילות
GoogleSignInAccount
לנגן הנוכחי. כדי ללמוד איך לאחזר את
לפרטים על חשבון השחקן, ראו כניסה ב-Android Games.
זוכים בהישגים
כדי להשיג הישג, מפעילים את השיטה AchievementsClient.unlock()
את מזהה ההישג.
קטע הקוד הבא מראה איך האפליקציה יכולה להגיע להישגים:
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .unlock(getString(R.string.my_achievement_id));
אם ההישג הוא מסוג מצטבר (כלומר, יש כמה שלבים שצריך לבצע כדי
מבטלים את הנעילה), צריך להתקשר במקום זאת למספר AchievementsClient.increment()
.
קטע הקוד הבא מראה איך האפליקציה יכולה להגדיל את ההישג של השחקן:
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(getString(R.string.my_achievement_id), 1);
לא צריך לכתוב קוד נוסף כדי לבטל את נעילת ההישג; Google Play Games Services מבטל את הנעילה של ההישג באופן אוטומטי כשהוא מגיע למספר השלבים הדרוש.
שיטה מומלצת היא להגדיר את מזהי ההישגים בקובץ strings.xml
, כך
המשחק שלך יכול להפנות להישגים לפי מזהה המשאב. כשמבצעים שיחות לצורך עדכון וטעינה
בהישגים שלנו, חשוב לפעול גם לפי השיטות המומלצות האלה
להימנע מחריגה ממכסת ה-API.
מוצגים הישגים
כדי להציג את ההישגים של השחקן, צריך להתקשר למספר AchievementsClient.getAchievementsIntent()
כדי לקבל Intent
ליצירה
ממשק המשתמש של ההישגים המוגדרים כברירת מחדל. לאחר מכן המשחק יכול להציג את ממשק המשתמש באמצעות התקשרות
startActivityForResult
בקטע הקוד הבא אפשר לראות איך האפליקציה יכולה להציג את ממשק המשתמש של הישג ברירת המחדל.
בקטע הקוד, RC_ACHIEVEMENT_UI
הוא מספר שלם שרירותי שהמשחק משתמש בו כקוד הבקשה.
private static final int RC_ACHIEVEMENT_UI = 9003; private void showAchievements() { Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .getAchievementsIntent() .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_ACHIEVEMENT_UI); } }); }
למטה מוצגת דוגמה לממשק המשתמש של ההישגים שמוגדר כברירת מחדל.