הישגים במשחקי Android

במדריך הזה מוסבר איך להשתמש בממשקי ה-API של ההישגים באפליקציה ל-Android כדי לפתוח ולהציג הישגים במשחק. ניתן למצוא את ממשקי ה-API. בcom.google.android.gms.games ו-com.google.android.gms.games.achievements חבילות.

לפני שמתחילים

אם עדיין לא עשית זאת, מומלץ לעיין השגת מושגים במשחק.

לפני שמתחילים לתכנת באמצעות ה-API של ההישגים:

איתור לקוח של הישגים

כדי להתחיל להשתמש ב-API של ההישגים, המשחק צריך לקבל תחילה AchievementsClient לאובייקט. אפשר לעשות זאת באמצעות קריאה ל Games.getAchievementClient() ונעביר את הפעילות.

מקבלים גישה להישגים

כדי להשיג הישג, קוראים לפונקציה AchievementsClient.unlock() ומעביר את מזהה ההישג.

קטע הקוד הבא מראה איך האפליקציה יכולה להגיע להישגים:

PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));

אם ההישג הוא מסוג מצטבר (כלומר, יש כמה שלבים נדרש כדי לבטל את הנעילה), צריך להתקשר במקום זאת למספר AchievementsClient.increment().

קטע הקוד הבא מראה איך האפליקציה יכולה להגדיל את הישג:

PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);

לא צריך לכתוב קוד נוסף כדי לבטל את נעילת ההישג; שירותי המשחקים של Google Play מבטל את הנעילה של ההישג באופן אוטומטי כשהוא מגיע למספר הנדרש של לבצע מיליון שלבים.

שיטה מומלצת היא להגדיר את מזהי ההישגים בקובץ strings.xml, כך המשחק שלך יכול להפנות להישגים לפי מזהה המשאב. בביצוע שיחות אל לעדכן ולטעון הישגים, הקפידו לפעול גם לפי שיטות מומלצות למניעת חריגה מה-API במכסה.

הצגת הישגים

כדי להציג את ההישגים של השחקן, צריך להתקשר למספר AchievementsClient.getAchievementsIntent() כדי לקבל Intent כדי ליצור את ממשק המשתמש של ההישגים המוגדרים כברירת מחדל. לאחר מכן המשחק שלך יכול להופיע את ממשק המשתמש באמצעות קריאה startActivityForResult

קטע הקוד הבא מראה איך האפליקציה יכולה להציג את ברירת המחדל בממשק המשתמש של ההישגים. בקטע הקוד, RC_ACHIEVEMENT_UI היא שרירותית מספר שלם שבו המשחק משתמש כקוד הבקשה.

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  PlayGames.getAchievementsClient(this)
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

למטה מוצגת דוגמה לממשק המשתמש של ההישגים שמוגדר כברירת מחדל.