لوحات الصدارة في لعبة Android

يوضِّح لك هذا الدليل كيفية استخدام واجهات برمجة تطبيقات "لوحات الصدارة" في أحد تطبيقات Android. لإنشاء قوائم صدارة مرئية، وتسجيل نتائج اللاعبين، ومقارنة النتائج مقارنةً بنتيجة اللاعب من جلسات المباراة السابقة. يمكن العثور على واجهات برمجة التطبيقات في com.google.android.gms.games وcom.google.android.gms.games.leaderboards حزم.

قبل البدء

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

قبل بدء الترميز باستخدام واجهات برمجة تطبيقات "لوحات الصدارة":

الحصول على عميل قوائم الصدارة

لبدء استخدام واجهة برمجة تطبيقات ليدربورد، يجب أن تحصل لعبتك أولاً على عنصر LeaderboardsClient. يمكنك إجراء ذلك من خلال استدعاء طريقة Games.getLeadeboardsClient() وتمرير الأخرى.

تحديث نتيجة اللاعب

عندما تتغير نتيجة اللاعب (على سبيل المثال، عندما ينهي اللاعب اللعبة)، تستطيع لعبة الفيديو تعديل نتيجتها في لوحة الصدارة من خلال استدعاء LeaderboardsClient.submitScore() وتمرير رقم تعريف لوحة الصدارة وقيمة النتيجة الأولية.

يعرض مقتطف الرمز التالي طريقة تطبيقك لتعديل نتيجة اللاعب:

PlayGames.getLeaderboardsClient(this)
    .submitScore(getString(R.string.leaderboard_id), 1337);

من الممارسات الجيدة تحديد معرّف "ليدربورد" في ملف strings.xml، وبالتالي يمكن للعبتك الرجوع إلى قوائم الصدارة من خلال رقم تعريف المورد. عند إجراء مكالمات على وتحديث وتحميل نتائج اللاعبين، والتأكد أيضًا من اتباع هذه أفضل الممارسات لتجنُّب تجاوز حصة واجهة برمجة التطبيقات.

عرض لوحة صدارة

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