gpg::GameServices

#include <game_services.h>

نقطة البداية للتفاعل مع "ألعاب Google Play".

ملخّص

مراحل خدمات الألعاب

يتم إنشاء مثيل لفئة GameServices عبر GameServices::Builder. عند إنشاء المثيل، لا يتم في البداية تسجيل الدخول إلى "خدمات الألعاب" (أي أن الأمر IsAuthorized() سيعرض خطأ "خطأ"). وتبدأ محاولة تسجيل دخول صامت في الخلفية، وقد تنجح هذه المحاولة إذا سجَّل المستخدم الدخول في نهاية جلسة سابقة. إلى أن تنتهي محاولة تسجيل الدخول التلقائي هذه، يجب أن يتم إخفاء أو إيقاف أي واجهة مستخدم لمصادقة المستخدم (مثل أزرار تسجيل الدخول و/أو تسجيل الخروج).

عند الانتهاء من محاولة تسجيل الدخول الصامتة هذه، سيتم إرسال إشعار إلى استدعاء OnAuthActionFinished لمثيل GameServices (المسجّل في GameServices::Builder::SetOnAuthActionFinished). إذا كانت وسيطات معاودة الاتصال تعكس محاولة تسجيل دخول ناجحة، يمكن افتراض أنّ المثيل متصل بخدمات الألعاب (أي أنّ IsAuthorized() ستظهر "true")، ويجب تفعيل واجهة مستخدم تسجيل الخروج. إذا كانت وسيطة رد الاتصال تعكس محاولة تسجيل دخول فاشلة، يجب تفعيل واجهة مستخدم تسجيل الدخول.

يجب عدم استدعاء تسجيل الخروج الصريح باستخدام طريقة SignOut() إلا بناءً على طلب المستخدم. يتطلب ذلك الانتقال إلى حالة "تسجيل الخروج". يشار إلى اكتمال عملية النقل هذه باستدعاء استدعاء OnAuthActionFinished. إلى أن يتم استدعاء معاودة الاتصال هذه، يجب عدم استدعاء واجهات برمجة تطبيقات GameServices الأخرى (بما في ذلك StartAuthorizeUI()).

عندما يتم إتلاف مثيل GameServices، سيتمّ حظر المثيل إلى أن لا تتوفّر أيّ عمليات في انتظار المراجعة لتجنّب فقدان البيانات. إذا كان سلوك حظر إتلاف الحظر هذا غير مرغوب فيه، يجب إصدار الأمر Flush() وإبقاء مثيل GameServices نشطًا حتى اكتمال Flush().

لكي تعمل GameServices بشكل صحيح على إصدارات Android الأقدم من 4.0، يجب أن يستدعي "النشاط المالك" استدعاءات في مراحل النشاط. راجع AndroidSupport.

الدلالة والهياكل

GameServices()
~GameServices()

الأنواع العلنية

FlushCallback typedef
std::function< void(FlushStatus)>
تحدد نوع رد الاتصال الذي يتلقى نتيجة (الحالة) عملية Flush.

الدوال العامة

Achievements()
توفر مرجعًا لكائن AchievementManager الذي يتم استخدامه للوصول إلى الإنجازات ومعالجتها.
Achievements() const
يوفّر مرجعًا ثابتًا لكائن AchievementManager المستخدَم للوصول إلى الإنجازات ومعالجتها.
Events()
توفِّر مرجعًا لكائن EventManager المستخدَم للوصول إلى الأحداث ومعالجتها.
Events() const
const EventManager &
يتم توفير مرجع ثابت لعنصر EventManager المستخدَم للوصول إلى الأحداث ومعالجتها.
Flush(FlushCallback callback)
void
تعمل هذه الميزة على مسح قائمة انتظار الإرسال الرئيسية بشكل غير متزامن، وإعادة حالة التدفق إلى FlushCallback الذي تم توفيره.
FlushBlocking()
يتدفق بالتزامن ويحصل على نتيجة (حالة) التدفق.
FlushBlocking(Timeout timeout)
يتدفق بالتزامن ويحصل على نتيجة (حالة) التدفق.
IsAuthorized()
bool
تسمح لك بالتحقق بشكلٍ صريح من حالة التفويض الحالية.
Leaderboards()
لتوفير مرجع إلى الكائن LeaderboardManager المستخدَم للوصول إلى الإنجازات ومعالجتها.
Leaderboards() const
يوفّر هذا الخيار مرجعًا ثابتًا لكائن LeaderboardManager للوصول إلى الإنجازات ومعالجتها.
Players()
لتوفير إشارة إلى عنصر PlayerManager، ما يتيح الوصول إلى معلومات حول اللاعبين.
Players() const
const PlayerManager &
يوفّر مرجعًا ثابتًا للعنصر PlayerManager، ما يسمح بالوصول إلى معلومات حول اللاعبين.
RealTimeMultiplayer()
توفّر هذه السمة مرجعًا للعنصر RealTimeMultiplayerManager، ما يسمح بالوصول إلى الطرق ذات الصلة ببروتوكول RTMP.
RealTimeMultiplayer() const
توفّر هذه السياسة مرجعًا ثابتًا للعنصر RealTimeMultiplayerManager، ما يسمح بالوصول إلى الطرق ذات الصلة ببروتوكول RTMP.
SignOut()
void
بدء عملية تسجيل الخروج غير المتزامنة.
Snapshots()
توفّر هذه السمة مرجعًا لكائن SnapshotManager المستخدَم للوصول إلى اللقطات ومعالجتها.
Snapshots() const
const SnapshotManager &
توفّر هذه السياسة مرجعًا ثابتًا لكائن SnapshotManager المستخدَم للوصول إلى اللقطات ومعالجتها.
StartAuthorizationUI()
void
تعرِض تدفق تفويض المستخدم الخاص بالنظام الأساسي.
Stats()
توفّر مرجعًا إلى الكائن StatsManager المستخدَم للوصول إلى إحصاءات اللعبة واللاعبين.
Stats() const
const StatsManager &
يوفّر مرجعًا ثابتًا لعنصر StatsManager المستخدَم للوصول إلى إحصاءات اللعبة واللاعبين.
TurnBasedMultiplayer()
توفّر إشارة إلى الكائن TurnBasedMultiplayerManager، مما يسمح بالوصول إلى الطرق ذات الصلة بـ TBMP.
TurnBasedMultiplayer() const
يوفّر مرجعًا ثابتًا للعنصر TurnBasedMultiplayerManager، ما يتيح الوصول إلى الطرق ذات الصلة بـ TBMP.
Video()
توفّر هذه السمة مرجعًا للعنصر VideoManager، ما يتيح الوصول إلى الطرق ذات الصلة بالفيديو.
Video() const
const VideoManager &
يوفّر مرجعًا ثابتًا لكائن VideoManager، ما يسمح بالوصول إلى الطرق ذات الصلة بالفيديو.

صفوف

gpg::GameServices::Builder

تُستخدَم هذه الوظيفة لإنشاء مثيل من فئة GameServices وإعداده.

الأنواع العلنية

FlushCallback

std::function< void(FlushStatus)> FlushCallback

تحدد نوع رد الاتصال الذي يتلقى نتيجة (الحالة) عملية Flush.

تُستخدَم في Flush().

الدوال العامة

الإنجازات

AchievementManager & Achievements()

توفر مرجعًا لكائن AchievementManager الذي يتم استخدامه للوصول إلى الإنجازات ومعالجتها.

الإنجازات

const AchievementManager & Achievements() const 

يوفّر مرجعًا ثابتًا لكائن AchievementManager المستخدَم للوصول إلى الإنجازات ومعالجتها.

فعاليات

EventManager & Events()

توفِّر مرجعًا لكائن EventManager المستخدَم للوصول إلى الأحداث ومعالجتها.

فعاليات

const EventManager & Events() const 

يتم توفير مرجع ثابت لعنصر EventManager المستخدَم للوصول إلى الأحداث ومعالجتها.

مع تدفق مائي

void Flush(
  FlushCallback callback
)

تعمل هذه الميزة على مسح قائمة انتظار الإرسال الرئيسية بشكل غير متزامن، وإعادة حالة التدفق إلى FlushCallback الذي تم توفيره.

الحالات المحتملة هي: FLUSHED وERROR_INTERNAL وERROR_VERSION_UPDATE_REQUIRED.

FlushBlocking

FlushStatus FlushBlocking()

يتدفق بالتزامن ويحصل على نتيجة (حالة) التدفق.

الحالات المحتملة هي: FLUSHED، وERROR_INTERNAL، وERROR_NOT_AUTHORIZED، وERROR_VERSION_UPDATE_REQUIRED، وERROR_CAMPAIGNS. عند ترك هذه المهلة بدون تحديد، يكون استدعاء الدالة هذا مكافئًا لاستدعاء FlushStatus FlushBlocking(Timeout)، مع تحديد "المهلة" على أنّها 10 سنوات.

FlushBlocking

FlushStatus FlushBlocking(
  Timeout timeout
)

يتدفق بالتزامن ويحصل على نتيجة (حالة) التدفق.

الحالات المحتملة هي: FLUSHED، وERROR_INTERNAL، وERROR_NOT_AUTHORIZED، وERROR_VERSION_UPDATE_REQUIRED، وERROR_CAMPAIGNS. حدِّد المهلة كعدد عشوائي من المللي ثانية.

GameServices

 GameServices()=delete

IsAuthorized

bool IsAuthorized()

تسمح لك بالتحقق بشكلٍ صريح من حالة التفويض الحالية.

يتم تشجيع مستخدمي حِزم SDK على التسجيل للحصول على AUTH_ACTION_* استدعاءات للتعامل مع تغييرات حالة التفويض، بدلاً من استطلاع الرأي.

لوحة الصدارة

LeaderboardManager & Leaderboards()

لتوفير مرجع إلى الكائن LeaderboardManager المستخدَم للوصول إلى الإنجازات ومعالجتها.

لوحة الصدارة

const LeaderboardManager & Leaderboards() const 

يوفّر هذا الخيار مرجعًا ثابتًا لكائن LeaderboardManager للوصول إلى الإنجازات ومعالجتها.

اللاعبون

PlayerManager & Players()

لتوفير إشارة إلى عنصر PlayerManager، ما يتيح الوصول إلى معلومات حول اللاعبين.

اللاعبون

const PlayerManager & Players() const 

يوفّر مرجعًا ثابتًا للعنصر PlayerManager، ما يسمح بالوصول إلى معلومات حول اللاعبين.

RealTimeMultiplayer

RealTimeMultiplayerManager & RealTimeMultiplayer()

توفّر هذه السمة مرجعًا للعنصر RealTimeMultiplayerManager، ما يسمح بالوصول إلى الطرق ذات الصلة ببروتوكول RTMP.

RealTimeMultiplayer

const RealTimeMultiplayerManager & RealTimeMultiplayer() const 

توفّر هذه السياسة مرجعًا ثابتًا للعنصر RealTimeMultiplayerManager، ما يسمح بالوصول إلى الطرق ذات الصلة ببروتوكول RTMP.

SignOut

void SignOut()

بدء عملية تسجيل الخروج غير المتزامنة.

بعد استدعاء SignOut، يجب ألا تستدعي أي عمليات في GameServices حتى تتلقّى رسالة OnAuthActionFinishedCallback التي تشير إلى نجاح عملية تسجيل الخروج.

اللقطات

SnapshotManager & Snapshots()

توفّر هذه السمة مرجعًا لكائن SnapshotManager المستخدَم للوصول إلى اللقطات ومعالجتها.

اللقطات

const SnapshotManager & Snapshots() const 

توفّر هذه السياسة مرجعًا ثابتًا لكائن SnapshotManager المستخدَم للوصول إلى اللقطات ومعالجتها.

StartAuthorizationUI

void StartAuthorizationUI()

تعرِض تدفق تفويض المستخدم الخاص بالنظام الأساسي.

الإحصاءات

StatsManager & Stats()

توفّر مرجعًا إلى الكائن StatsManager المستخدَم للوصول إلى إحصاءات اللعبة واللاعبين.

الإحصاءات

const StatsManager & Stats() const 

يوفّر مرجعًا ثابتًا لعنصر StatsManager المستخدَم للوصول إلى إحصاءات اللعبة واللاعبين.

TurnBasedMultiplayer

TurnBasedMultiplayerManager & TurnBasedMultiplayer()

توفّر إشارة إلى الكائن TurnBasedMultiplayerManager، مما يسمح بالوصول إلى الطرق ذات الصلة بـ TBMP.

TurnBasedMultiplayer

const TurnBasedMultiplayerManager & TurnBasedMultiplayer() const 

يوفّر مرجعًا ثابتًا للعنصر TurnBasedMultiplayerManager، ما يتيح الوصول إلى الطرق ذات الصلة بـ TBMP.

حملة فيديو

VideoManager & Video()

توفّر هذه السمة مرجعًا للعنصر VideoManager، ما يتيح الوصول إلى الطرق ذات الصلة بالفيديو.

حملة فيديو

const VideoManager & Video() const 

يوفّر مرجعًا ثابتًا لكائن VideoManager، ما يسمح بالوصول إلى الطرق ذات الصلة بالفيديو.

~GameServices

 ~GameServices()