# تعامل مع علامات التبويب المخفية كحالة لعبة

> استخدم تغييرات رؤية الصفحة لاختيار ما سيتم إيقافه مؤقتًا، وما سيتم حفظه، وكيفية استئناف لعبة المتصفح دون قفزة زمنية.

- URL: https://oneshotgems.ai/ar/topics/pausing-background-games
- الفئة: لمطوري الألعاب
- النوع: دليل
- آخر تحديث: 5 أكتوبر 2026

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

## حدّد ما يتغير عند تبدل الرؤية

في لعبة تعتمد على سرعة الاستجابة، أوقف اللعب مؤقتاً عندما تصبح قيمة document.visibilityState هي hidden، وأوقف العد التنازلي وامسح حالة المفاتيح المضغوطة، ثم اعرض زر استئناف عندما تصبح الصفحة مرئية مجدداً. أما اللغز القائم على الأدوار فيمكنه إبقاء اللوحة كما هي من دون شاشة إيقاف مؤقت، مع كتم الصوت وإعادة ضبط ساعة الرسوم المتحركة.

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

## أعد ضبط التوقيت قبل الاستئناف

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

استخدم واجهة برمجة تطبيقات رؤية الصفحة بدلاً من الاعتماد فقط على التمويه والتركيز: يمكن أن تفقد النافذة التركيز بينما تظل مرئية، وتوضح الرؤية ما إذا كان المستند مخفيًا بالفعل. حافظ على استقلالية أي سياسة للحفظ التلقائي؛ سلوك الإيقاف المؤقت والمثابرة لهما أغراض مختلفة ويجب اختبارهما بشكل منفصل.

## أسئلة

**هل سيستمر requestAnimationFrame في العمل في علامة تبويب مخفية؟** تقوم معظم المتصفحات بإيقاف عمليات الاسترجاعات المتحركة في علامات تبويب الخلفية أو إطارات iframe المخفية، وقد يتم أيضًا تقييد عمليات الاسترجاعات المؤقتة. تعامل مع هذه السلوكيات كأسباب للتعامل مع الرؤية وليس كساعة دقيقة.

**هل يجب أن تتوقف كل لعبة مؤقتًا عند إخفائها؟** لا توجد سياسة واحدة تناسب كل تصميم. إيقاف الألعاب مؤقتًا حيث تغير المحاكاة غير المرئية التحدي؛ بالنسبة للعب القائم على الأدوار، قد يكون الحفاظ على اللوحة الحالية كافيًا. في كلتا الحالتين، قم بإعادة ضبط التوقيت والصوت عمدًا عند العودة.

## اتبع فضولك

- [أنشئ حلقة ألعاب موثوقة في المتصفح](https://oneshotgems.ai/ar/topics/browser-game-loop): قم ببناء تحديثات لعبة المتصفح والرسم حول إطارات الرسوم المتحركة دون ربط سرعة المحاكاة بمعدل تحديث شاشة اللاعب.
- [استخدم وقت دلتا لتجنب قفزات الحركة](https://oneshotgems.ai/ar/topics/delta-time-in-games): قم بتطبيق الوقت المنقضي على حركة اللعبة، واختيار سياسة اللحاق بالركب الآمنة، واختبار الحركة بمعدلات تحديث مختلفة وبعد التوقف.

## للمزيد من القراءة

- [MDN: واجهة برمجة تطبيقات رؤية الصفحة](https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API)

---
الصفحة الأساسية: https://oneshotgems.ai/ar/topics/pausing-background-games
