الروبوت حيث يتم تخزين البيانات بلدي التطبيق

مضيفا الألعاب المحفوظة لعبة الروبوت لديك

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

قبل ان تبدأ

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

الروبوت حيث يتم تخزين البيانات بلدي التطبيق

قبل البدء في التعليمات البرمجية باستخدام API الألعاب المحفوظة:

بمجرد التوقيع على لاعب في وتوصيل GoogleApiClient، يمكن أن اللعبة تبدأ باستخدام API الألعاب المحفوظة.

عرض الألعاب المحفوظة

يمكنك دمج API الألعاب المحفوظة أينما توفر اللعبة لاعبين مع خيار لحفظ أو استعادة تقدمهم. قد تعرض لعبتك مثل هذا الخيار في عين حفظ / استعادة نقطة أو تسمح للاعبين لحفظ أو استعادة التقدم في أي وقت.

مرة واحدة لاعبين اختيار حفظ / استعادة الخيار في اللعبة، يجب أن اللعبة إظهار شاشة يطالب اللاعبين لإدخال معلومات عن لعبة تم حفظها جديدة أو تحديد لعبة حفظ القائمة لاستعادة. لتبسيط تطوير الخاص بك، وAPI الألعاب المحفوظة يوفر واجهة المستخدم التحديد الافتراضي الألعاب المحفوظة (UI) التي يمكنك استخدامها خارج المربع. اختيار واجهة المستخدم الألعاب المحفوظة يسمح للاعبين لخلق لعبة تم حفظها الجديدة، عرض تفاصيل حول الألعاب التي تم حفظها القائمة، وتحميل الألعاب المحفوظة السابقة.

لإحضار الافتراضي الألعاب المحفوظة واجهة المستخدم:

  1. استدعاء getSelectSnapshotIntent () للحصول على نية لإطلاق الافتراضي الألعاب المحفوظة اختيار واجهة المستخدم. في استدعاء الأسلوب، يمكنك تعيين القيم المنطقية في المعلمات allowAddButton وallowDelete لبيان ما إذا كان لعبتك تريد واجهة المستخدم لتوفير أزرار لخلق لعبة حفظها جديدة أو حذف الألعاب المحفوظة الموجودة.
  2. استدعاء startActivityForResult () وتمرير في ذلك نية. إذا كانت المكالمة ناجحة، تعرض لعبة اختيار واجهة المستخدم المحفوظة لعبة، جنبا إلى جنب مع الخيارات التي حددتها.

يظهر المقتطف التالي كيفية طرح واجهة المستخدم الافتراضية الألعاب المحفوظة اختيار:

إذا كان لاعب يختار لخلق لعبة حفظها جديدة أو تحميل اللعبة المحفوظة الموجودة، يرسل واجهة المستخدم طلب بخدمات Google لعب مباريات. إذا كان الطلب ناجحا، خدمات Google Play لألعاب بإرجاع كائن لقطة تمثل اللعبة المحفوظة لعبة من خلال رد onActivityResult (). اللعبة يمكن تجاوز هذا الاستدعاء للتحقق مما إذا حدثت أية أخطاء أثناء الطلب.

يظهر التعليمات البرمجية المتكررة لتنفيذ عينة من onActivityResult ():

الكتابة الألعاب المحفوظة

لتخزين المحتوى إلى اللعبة المحفوظة، يجب أن اللعبة الحصول على مرجع إلى كائن لقطة ثم استدعاء المفتوحة () للوصول إلى تعديل محتوياته. يمكنك تخزين البيانات لاعب في شكل بايت عن طريق الاتصال writeBytes ().

مرة واحدة يتم إجراء كل ما تبذلونه من التعديلات على محتوى اللعبة المحفوظة أو الفوقية، والدعوة commitAndClose () لإرسال التغييرات إلى خوادم Google. في استدعاء الأسلوب، يمكن لعبتك المنتسبين معلومات إضافية لإخبار Google خدمات لعب مباريات كيفية تقديم هذه اللعبة المحفوظة للاعبين. ويمثل هذه المعلومات في كائن SnapshotMetaDataChange، الذي يخلق اللعبة باستخدام SnapshotMetadataChange.Builder.

يظهر المقتطف التالي كيف اللعبة قد تلزم تغييرات على اللعبة المحفوظة:

إذا لم يتم توصيل الجهاز لاعب في شبكة عند استدعاء التطبيق commitAndClose (). في Google Play مخازن خدمات الألعاب البيانات اللعبة المحفوظة محليا على الجهاز. على جهاز إعادة الاتصال، خدمات Google Play لألعاب المصاحبة للالمخبأة محليا التغييرات اللعبة المحفوظة إلى خوادم Google.

تحميل الألعاب المحفوظة

لاسترداد كافة الألعاب المحفوظة لاعب وقعت في الوقت الراهن، استدعاء الأسلوب تحميل ().

اللعبة يمكن أيضا استرداد اللعبة المحفوظة محددة من خلال لاعب التشكيلة واجهة المستخدم، كما هو موضح في عرض الألعاب المحفوظة. يتم تمثيل اللعبة المحفوظة عاد كما لقطة. والتي يمكن أن اللعبة ثم فتح لقراءة محتواه والبيانات الوصفية.

لتحسين أداء اللعبة، ويتم تشجيع لك لأداء المحفوظة لعبة تحميل كعملية خلفية وليس في موضوع الرئيسي. واحد طريقة للقيام بذلك هو عن طريق استخدام AsyncTask وتجاوز منهجه doInBackground () لفتح اللعبة المحفوظة.

يظهر المقتطف التالي كيف يمكن تنفيذ AsyncTask لتحميل اللعبة المحفوظة محددة:

التعامل مع الصراعات اللعبة المحفوظة

عند استخدام خدمة الألعاب المحفوظة في اللعبة، فمن الممكن لأجهزة متعددة لأداء يقرأ ويكتب على نفس اللعبة المحفوظة. في حالة عدم وجود جهاز يفقد مؤقتا اتصال الشبكة، ويعيد في وقت لاحق، وهذا قد يسبب صراعات البيانات حيث اللعبة المحفوظة المخزنة على جهاز محلي لاعب هو خارج متزامنا مع نسخة عن بعد المخزنة في خوادم Google. توفر خدمات الألعاب المحفوظة آلية لتسوية الصراع الذي يعرض كل مجموعات متضاربة الألعاب التي تم حفظها في قراءة الوقت ويتيح لك تنفيذ استراتيجية القرار الذي يتناسب مع اللعبة.

عندما خدمات Google Play لألعاب يكشف الصراع البيانات، فإنه بإعلام اللعبة خلال عملية حفظ اللعبة مفتوحة عن طريق إرجاع رمز حالة من STATUS_SNAPSHOT_CONFLICT. في هذا الحدث، وOpenSnapshotResult توفر نسختين من اللعبة المحفوظة:

  • أحدث إصدار ما يصل إلى تاريخ معروف من قبل خدمات ألعاب Google Play لتكون دقيقة. و
  • نسخة معدلة الكشف على أحد الأجهزة اللاعب الذي يحتوي على محتوى المتعارضة أو الفوقية. هذا قد لا يكون نفس الإصدار الذي حاولت حفظ.

اللعبة يجب أن تقرر كيفية حل الصراع عن طريق اختيار واحدة من الصيغ المقدمة أو دمج البيانات من اثنين من إصدارات اللعبة المحفوظة.

والكشف عن حل النزاعات اللعبة المحفوظة، اتبع الخطوات التالية:

  1. استدعاء Snapshots.open (). إذا تم إرجاع STATUS_SNAPSHOT_CONFLICT، لديك الصراع إلى حل.
  2. استدعاء OpenSnapshotResult.getConflictId () لاسترداد هوية الصراع الذي يحدد الصراع الكشف عن فريد. اللعبة تحتاج هذه القيمة إلى إرسال طلب قرار الصراع في وقت لاحق.
  3. استدعاء getConflictingSnapshot () للحصول على نسخة معدلة.
  4. استدعاء getSnapshot () للحصول على إصدار الخادم.
  5. لحل الصراع اللعبة المحفوظة، حدد الإصدار الذي تريد حفظ إلى الملقم مثل النسخة النهائية، وتمريرها إلى Snapshots.resolveConflict طريقة ().

وفيما يلي يظهر قصاصة ومثال على كيفية اللعبة قد تعامل مع الصراع اللعبة المحفوظة عن طريق اختيار أحدث لعبة حفظها في النسخة النهائية لإنقاذ:

تعديل اللعبة المحفوظة لتسوية النزاعات

إذا كنت ترغب في دمج البيانات من الألعاب المحفوظة اثنين أو تعديل لقطة القائمة لحفظ إلى الملقم مثل النسخة النهائية حلها، اتبع الخطوات التالية:

  1. اختيار كائن لقطة من getConflictingSnapshot () أو getSnapshot () كما هو الأساسي الخاص بك.
  2. بعد ذلك، ندعو Snapshots.resolveConflict () وتمرير في لقطة الذي قمت بتحديده في الخطوة السابقة. هذا يخزن لقطة إلى الملقم.
  3. دعوة مفتوحة () لاسترداد لقطة انك المخزنة في الخطوة السابقة. الآن إجراء تعديلات للقطة عاد. ثم استدعاء SnapshotsmitAndClose () لتحميل المعدلة حفظ اللعبة إلى الملقم.

المهاجرة من API AppState

إذا اللعبة تستخدم API سحابة حفظ (AppState) لتخزين البيانات لاعب لخدمات ألعاب Google Play، يجب ترحيل التعليمات البرمجية لاستخدام واجهة برمجة الألعاب المحفوظة في أقرب وقت ممكن. يسرد الجدول التالي التغييرات التعليمات البرمجية التي يجب أن تكون على علم عند المهاجرة اللعبة:

الوظائف ذات الصلة

  • أين لعب مخزن تخزين التطبيقات وأنا حاليا تحميل؟ التطبيق Playstore عادة يستخدم / بيانات / المحلية لتخزين مؤقتا apk. لحين تحميل الملفات، ثم تثبيتها من هناك، ...

  • كيفية تعيين النغمات إعلام مخصص في أجهزة الروبوت الروبوت وخرجت على نطاق واسع في العالم. في أجهزة الروبوت لا يوجد خيار سهل لتحديد العرف أو نغمة إخطار الخاصة ....

  • أين ملف تطبيق البيانات المخزنة بالفعل على جهاز الروبوت؟ لقد وضعت التطبيق الروبوت باستخدام Appcelerator التيتانيوم. وهذا التطبيق إنشاء ملف في applicationDataDirectory و...

  • أفضل قارئ إلكتروني للكتب إلكترونية الروبوت القراءة على الروبوت تستخدم ليكون مجرد بخير. الآن انها رهيبة. في حين أن هناك الكثير من التطبيقات الحلوة لقراءة الكتب على الهاتف أو الجهاز اللوحي، لعب كتب له ...

  • فيديو: التدريب العملي على جديد مع إينستاجرام الفيديو على الروبوت ليس ذلك كان الكثير من مفاجأة بعد بضعة تقارير من الخبر في الأيام التي سبقت الحدث الفيسبوك اليوم، ولكن نعم، هم ...