0%
مشغّل اللعبة (جسر نحو الجزء الثاني) — الفصل 62

الفصل 62 — مشغّل اللعبة (جسر نحو الجزء الثاني)

الجزء 1C — ثمانية مشاريع مصغّرة · الفصل 62 من 62 · 20 ساعة

الفصل 62 — مشغّل اللعبة (جسر نحو الجزء الثاني)

المستوى: متوسط / متقدم المدة المقدّرة: 20 ساعة المتطلبات المسبقة: الجزء 1A (الفصول من 01 إلى 18)، والجزء 1B (الفصول من 43 إلى 54)، والمشاريع من 55 إلى 61 ما ستتمكن من فعله في النهاية: بناء «الميتا-لعبة» كاملةً التي تحيط بأي لعبة فيديو — قائمة متحركة، إنشاء الشخصية، بطاقة الشخصية، المخزون، التجهيز، المتجر، لوحة الترتيب، الخيارات، وخانات الحفظ المتعددة — داخل تطبيق Flutter عادي، جاهز لاستقبال محرّك لعبة.


62.0 — أهداف الفصل

في نهاية هذا الفصل ستكون قادرًا على:

  • التمييز بين حلقة اللعبة (boucle de jeu) والميتا-لعبة (méta-jeu)، وفهم سبب استحواذ الثانية على معظم شيفرة أي لعبة تجارية؛
  • بناء قائمة رئيسية متحركة من سبعة عناصر، اثنان منها مشروطان؛
  • نمذجة شخصية وعنصر وحفظ باستخدام fromJson / toJson (تذكير بالفصل 17)؛
  • كتابة شاشة كاملة لإنشاء الشخصية: اسم يخضع للتحقق، اختيار الفئة، توزيع النقاط (تذكير بالفصل 49)؛
  • عرض بطاقة شخصية مع أشرطة إحصاءات نسبية (تذكير بالفصل 55)؛
  • عرض مخزون في GridView مع تصفية حسب النوع وفرز متعدد المعايير (تذكير بالفصلين 48 و14)؛
  • تجهيز العناصر وإعادة حساب الإحصاءات المشتقة دون تكرار البيانات أبدًا؛
  • بناء متجر يدعم الشراء وإعادة البيع وإدارة عملة (تذكير بالفصل 60)؛
  • عرض ترتيب محلي ثم دمجه مع ترتيب بعيد (تذكير بالفصل 53)؛
  • كتابة شاشة خيارات: مستويات الصوت، الصعوبة، السمة، وإعادة تخصيص المفاتيح؛
  • حفظ لعبة كاملة في سلسلة JSON واحدة (تذكير بالفصل 54)؛
  • إدارة عدة خانات حفظ مستقلة؛
  • اكتشاف ملف حفظ تالف وإصلاحه دون أن يتعطل التطبيق (تذكير بالفصل 13)؛
  • مركزة حالة التطبيق في عدة ChangeNotifier تُعرَض عبر provider (تذكير بالفصل 52)؛
  • كتابة انتقالات شاشات مخصّصة باستخدام PageRouteBuilder (تذكير بالفصل 50)؛
  • بناء شاشة تحميل تُحضّر فعلًا شيئًا ما؛
  • رسم منطقة لعب وهمية باستخدام CustomPaint، في الموضع نفسه الذي سيشغله GameWidget مستقبلًا؛
  • قراءة جدول مطابقة، شاشةً بشاشة، بين هذا المشروع ولعبة Flame في الفصل 35؛
  • اختبار منطق الشخصية والمخزون دون تشغيل أي واجهة.

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!