يصف هذا المستند كيفية استخدام إحصاءات ألعاب Google Play في ألعاب ++C. يفترض هذا المستند أنّك أعددت مشروعك كما هو موضّح في مقالة إعداد
"خدمات ألعاب Google Play". يمكنك العثور على Game Stats API في الـ
PgsGameStatsClient.
قبل البدء
إذا لم يسبق لك إجراء ذلك، قد يكون من المفيد مراجعة مفاهيم إحصاءات الألعاب.
قبل البدء في كتابة الرموز البرمجية باستخدام Game Stats API، يجب:
اتّبِع التعليمات الخاصة بتثبيت تطبيقك وإعداده لاستخدام "خدمات ألعاب Play" في دليل إعداد "خدمات ألعاب Google Play".
حدِّد إحصاءات الألعاب التي تريد أن تتتبّعها لعبتك، وذلك باتّباع التعليمات الواردة في دليل Google Play Console.
الحصول على برنامج إحصاءات اللعب
لبدء استخدام واجهة برمجة التطبيقات للإنجازات، يجب أن تحصل لعبتك أولاً على
PgsGameStatsClient
كائن. يمكنك إجراء ذلك من خلال استدعاء الـ
PgsPlayerGameEvent_create
طريقة وتمرير النشاط.
التكامل من جانب البرنامج
يتضمّن التكامل من جانب البرنامج لـ PlayerGameEvent إنشاء كائن الحدث في حزمة تطوير البرامج (SDK) بلغة ++C، عند نقاط التشغيل وإرسالها باستخدام وظائف التحميل التي توفّرها حزمة تطوير البرامج (SDK).
وبالمثل، بالنسبة إلى حدث progressUpdate، سجِّل مستوى التقدّم المعدَّل باستخدام السمة currentProgress مع السمات الإضافية المحدّدة وأرسِلها باستخدام وظائف التحميل التي توفّرها حزمة تطوير البرامج (SDK).
الأحداث
التكامل من جانب البرنامج لـ PlayerGameEvent هو:
إنشاء حدث لعبة اللاعب
C++
// Build the PlayerGameEvent
PgsPlayerGameEvent* player_event = PgsPlayerGameEvent_create("matchCompleted");
if (player_event != nullptr) {
PgsPlayerGameEvent_putString(player_event, "matchId", "Match_A");
PgsPlayerGameEvent_putString(player_event, "gameMode", "Battle_B");
PgsPlayerGameEvent_putString(player_event, "mapId", "Location_XYZ");
PgsPlayerGameEvent_putBoolean(player_event, "isWinner", true);
PgsPlayerGameEvent_putLong(player_event, "playerElimination", 2);
}
إنشاء حدث لعبة اللاعب progressUpdate
C++
PgsPlayerGameEvent* progress_event = PgsPlayerGameEvent_create("progressUpdate");
if (progress_event != nullptr) {
PgsPlayerGameEvent_putLong(progress_event, "currentProgress", 52);
}
تسجيل الحدث وتحميله
C++
// Record the event
PgsGameStatsClient_recordEvent(client, player_event);
// This submits the events to PGS
PgsGameStatsClient_requestEventsUpload(client);
// Clean up handle to avoid leaks
PgsPlayerGameEvent_destroy(player_event);
// Clean up client handle when PGS operations are finished
PgsGameStatsClient_destroy(client);