الإنجازات في ألعاب Android

يوضّح لك هذا الدليل كيفية استخدام واجهات برمجة تطبيقات الإنجازات في أحد تطبيقات Android. لفتح الإنجازات في لعبتك وعرضها. يمكن العثور على واجهات برمجة التطبيقات في com.google.android.gms.games وcom.google.android.gms.games.achievements حزم.

قبل البدء

إذا لم تكن قد فعلت ذلك بالفعل، فقد تجد أنه من المفيد مراجعة مفاهيم ألعاب الإنجازات.

قبل بدء الترميز باستخدام واجهة برمجة تطبيقات الإنجازات:

الحصول على عميل إنجازات

لبدء استخدام واجهة برمجة تطبيقات الإنجازات، يجب أن تحصل لعبتك أولاً على 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، بحيث يمكن أن ترجع لعبتك إلى الإنجازات من خلال رقم تعريف المورد. عند إجراء مكالمات للتحديث والتحميل إنجازاتك، فاحرص أيضًا على اتباع أفضل الممارسات هذه تجنب تجاوز حصة واجهة برمجة التطبيقات.

عرض الإنجازات

لعرض إنجازات اللاعب، يُرجى الاتصال على الرقم 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);
        }
      });
}

يظهر أدناه مثال لواجهة مستخدم الإنجازات التلقائية.